diff --git a/_images/METAR_Station_Plot_with_MetPy_10_0.png b/_images/METAR_Station_Plot_with_MetPy_10_0.png deleted file mode 100644 index 4ba4916..0000000 Binary files a/_images/METAR_Station_Plot_with_MetPy_10_0.png and /dev/null differ diff --git a/_images/METAR_Station_Plot_with_MetPy_26_0.png b/_images/METAR_Station_Plot_with_MetPy_26_0.png new file mode 100644 index 0000000..9f4e8d0 Binary files /dev/null and b/_images/METAR_Station_Plot_with_MetPy_26_0.png differ diff --git a/_modules/awips/DateTimeConverter.html b/_modules/awips/DateTimeConverter.html index 512b66b..00bb571 100644 --- a/_modules/awips/DateTimeConverter.html +++ b/_modules/awips/DateTimeConverter.html @@ -13,6 +13,7 @@ + diff --git a/_modules/awips/RadarCommon.html b/_modules/awips/RadarCommon.html index ad9de4a..cefdbb3 100644 --- a/_modules/awips/RadarCommon.html +++ b/_modules/awips/RadarCommon.html @@ -13,6 +13,7 @@ + diff --git a/_modules/awips/ThriftClient.html b/_modules/awips/ThriftClient.html index affc6e0..2e130bb 100644 --- a/_modules/awips/ThriftClient.html +++ b/_modules/awips/ThriftClient.html @@ -13,6 +13,7 @@ + diff --git a/_modules/awips/TimeUtil.html b/_modules/awips/TimeUtil.html index 5da4e95..ae7cf6c 100644 --- a/_modules/awips/TimeUtil.html +++ b/_modules/awips/TimeUtil.html @@ -13,6 +13,7 @@ + diff --git a/_modules/awips/dataaccess.html b/_modules/awips/dataaccess.html index 5fb9303..878c065 100644 --- a/_modules/awips/dataaccess.html +++ b/_modules/awips/dataaccess.html @@ -13,6 +13,7 @@ + diff --git a/_modules/awips/dataaccess/CombinedTimeQuery.html b/_modules/awips/dataaccess/CombinedTimeQuery.html index 0259630..a665744 100644 --- a/_modules/awips/dataaccess/CombinedTimeQuery.html +++ b/_modules/awips/dataaccess/CombinedTimeQuery.html @@ -13,6 +13,7 @@ + diff --git a/_modules/awips/dataaccess/DataAccessLayer.html b/_modules/awips/dataaccess/DataAccessLayer.html index f0b2be4..f63fd13 100644 --- a/_modules/awips/dataaccess/DataAccessLayer.html +++ b/_modules/awips/dataaccess/DataAccessLayer.html @@ -13,6 +13,7 @@ + diff --git a/_modules/awips/dataaccess/ModelSounding.html b/_modules/awips/dataaccess/ModelSounding.html index 1fd9b9b..f1a0222 100644 --- a/_modules/awips/dataaccess/ModelSounding.html +++ b/_modules/awips/dataaccess/ModelSounding.html @@ -13,6 +13,7 @@ + diff --git a/_modules/awips/dataaccess/PyData.html b/_modules/awips/dataaccess/PyData.html index b8349fe..f3f5fdd 100644 --- a/_modules/awips/dataaccess/PyData.html +++ b/_modules/awips/dataaccess/PyData.html @@ -13,6 +13,7 @@ + diff --git a/_modules/awips/dataaccess/PyGeometryData.html b/_modules/awips/dataaccess/PyGeometryData.html index e90fd6b..ae6bcd9 100644 --- a/_modules/awips/dataaccess/PyGeometryData.html +++ b/_modules/awips/dataaccess/PyGeometryData.html @@ -13,6 +13,7 @@ + diff --git a/_modules/awips/dataaccess/PyGridData.html b/_modules/awips/dataaccess/PyGridData.html index a9d6690..ce1fcb5 100644 --- a/_modules/awips/dataaccess/PyGridData.html +++ b/_modules/awips/dataaccess/PyGridData.html @@ -13,6 +13,7 @@ + diff --git a/_modules/awips/dataaccess/ThriftClientRouter.html b/_modules/awips/dataaccess/ThriftClientRouter.html index 03c06c1..d699546 100644 --- a/_modules/awips/dataaccess/ThriftClientRouter.html +++ b/_modules/awips/dataaccess/ThriftClientRouter.html @@ -13,6 +13,7 @@ + diff --git a/_modules/awips/gfe/IFPClient.html b/_modules/awips/gfe/IFPClient.html index 1638c1b..b26c6ce 100644 --- a/_modules/awips/gfe/IFPClient.html +++ b/_modules/awips/gfe/IFPClient.html @@ -13,6 +13,7 @@ + diff --git a/_modules/index.html b/_modules/index.html index 73c1422..d967d81 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -13,6 +13,7 @@ + diff --git a/_sources/examples/generated/METAR_Station_Plot_with_MetPy.rst.txt b/_sources/examples/generated/METAR_Station_Plot_with_MetPy.rst.txt index 7154117..0abedb0 100644 --- a/_sources/examples/generated/METAR_Station_Plot_with_MetPy.rst.txt +++ b/_sources/examples/generated/METAR_Station_Plot_with_MetPy.rst.txt @@ -2,8 +2,60 @@ METAR Station Plot with MetPy ============================= `Notebook `_ -This exercise creates a METAR plot for North America using AWIPS METAR -observations (datatype *obs*) and MetPy. +Python-AWIPS Tutorial Notebook + +-------------- + +Objectives +========== + +- Use python-awips to connect to an edex server +- Define and filter data request for METAR surface obs +- Extract necessary data and reformat it for plotting +- Stylize and plot METAR station data using Cartopy, Matplotlib, and + MetPy + +-------------- + +Table of Contents +----------------- + +| `1 + Imports `__\ +| `2 Function: + get_cloud_cover() `__\ +| `3 Initial + Setup `__\ +|     `3.1 Initial EDEX + Connection `__\ +|     `3.2 Setting Connection Location + Names `__\ +| `4 Filter by + Time `__\ +| `5 Use the + Data! `__\ +|     `5.1 Get the + Data! `__\ +|     `5.2 Extract all + Parameters `__\ +|     `5.3 Populate the Data + Dictionary `__\ +| `6 Plot the + Data! `__\ +| `7 See + Also `__\ +|     `7.1 Related + Notebooks `__\ +|     `7.2 Additional + Documentation `__\ + +1 Imports +--------- + +The imports below are used throughout the notebook. Note the first two +imports are coming directly from python-awips and allow us to connect to +an EDEX server, and define a timrange used for filtering the data. The +subsequent imports are for data manipulation and visualization. .. code:: ipython3 @@ -15,36 +67,53 @@ observations (datatype *obs*) and MetPy. import cartopy.feature as cfeature import matplotlib.pyplot as plt from metpy.calc import wind_components - from metpy.plots import StationPlot, StationPlotLayout + from metpy.plots import StationPlot, StationPlotLayout, sky_cover from metpy.units import units - import warnings - %matplotlib inline - warnings.filterwarnings("ignore",category =RuntimeWarning) - + +`Top `__ + +-------------- + +2 Function: get_cloud_cover() +----------------------------- + +Returns the cloud fraction values as integer codes (0 through 8). + +.. code:: ipython3 + def get_cloud_cover(code): if 'OVC' in code: - return 1.0 + return 8 elif 'BKN' in code: - return 6.0/8.0 + return 6 elif 'SCT' in code: - return 4.0/8.0 + return 4 elif 'FEW' in code: - return 2.0/8.0 + return 2 else: return 0 - - # Pull out these specific stations (prepend K for AWIPS identifiers) - selected = ['PDX', 'OKC', 'ICT', 'GLD', 'MEM', 'BOS', 'MIA', 'MOB', 'ABQ', 'PHX', 'TTF', - 'ORD', 'BIL', 'BIS', 'CPR', 'LAX', 'ATL', 'MSP', 'SLC', 'DFW', 'NYC', 'PHL', - 'PIT', 'IND', 'OLY', 'SYR', 'LEX', 'CHS', 'TLH', 'HOU', 'GJT', 'LBB', 'LSV', - 'GRB', 'CLT', 'LNK', 'DSM', 'BOI', 'FSD', 'RAP', 'RIC', 'JAN', 'HSV', 'CRW', - 'SAT', 'BUY', '0CO', 'ZPC', 'VIH', 'BDG', 'MLF', 'ELY', 'WMC', 'OTH', 'CAR', - 'LMT', 'RDM', 'PDT', 'SEA', 'UIL', 'EPH', 'PUW', 'COE', 'MLP', 'PIH', 'IDA', - 'MSO', 'ACV', 'HLN', 'BIL', 'OLF', 'RUT', 'PSM', 'JAX', 'TPA', 'SHV', 'MSY', - 'ELP', 'RNO', 'FAT', 'SFO', 'NYL', 'BRO', 'MRF', 'DRT', 'FAR', 'BDE', 'DLH', - 'HOT', 'LBF', 'FLG', 'CLE', 'UNV'] - selected = ['K{0}'.format(id) for id in selected] - data_arr = [] + +`Top `__ + +-------------- + +3 Initial Setup +--------------- + +3.1 Initial EDEX Connection +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +First we establish a connection to Unidata’s public EDEX server. With +that connection made, we can create a `new data request +object `__ +and set the data type to **obs**. + +Then, because we’re going to uses MetPy’s +`StationPlot `__ +and +`StationPlotLayout `__ +we need to define several parameters, and then set them on the data +request object. .. code:: ipython3 @@ -52,21 +121,52 @@ observations (datatype *obs*) and MetPy. edexServer = "edex-cloud.unidata.ucar.edu" DataAccessLayer.changeEDEXHost(edexServer) request = DataAccessLayer.newDataRequest("obs") - availableProducts = DataAccessLayer.getAvailableParameters(request) + # define desired parameters single_value_params = ["timeObs", "stationName", "longitude", "latitude", "temperature", "dewpoint", "windDir", - "windSpeed", "seaLevelPress"] - multi_value_params = ["presWeather", "skyCover", "skyLayerBase"] - pres_weather, sky_cov, sky_layer_base = [],[],[] - params = single_value_params + multi_value_params - obs = dict({params: [] for params in params}) + "windSpeed"] + multi_value_params = ["skyCover"] + params = single_value_params + multi_value_params + + # set all parameters on the request request.setParameters(*(params)) + +3.2 Setting Connection Location Names +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +We are also going to define specific station IDs so that our plot is not +too cluttered. + +.. code:: ipython3 + + # Define a list of station IDs to plot + selected = ['KPDX', 'KOKC', 'KICT', 'KGLD', 'KMEM', 'KBOS', 'KMIA', 'KMOB', 'KABQ', 'KPHX', 'KTTF', + 'KORD', 'KBIL', 'KBIS', 'KCPR', 'KLAX', 'KATL', 'KMSP', 'KSLC', 'KDFW', 'KNYC', 'KPHL', + 'KPIT', 'KIND', 'KOLY', 'KSYR', 'KLEX', 'KCHS', 'KTLH', 'KHOU', 'KGJT', 'KLBB', 'KLSV', + 'KGRB', 'KCLT', 'KLNK', 'KDSM', 'KBOI', 'KFSD', 'KRAP', 'KRIC', 'KJAN', 'KHSV', 'KCRW', + 'KSAT', 'KBUY', 'K0CO', 'KZPC', 'KVIH', 'KBDG', 'KMLF', 'KELY', 'KWMC', 'KOTH', 'KCAR', + 'KLMT', 'KRDM', 'KPDT', 'KSEA', 'KUIL', 'KEPH', 'KPUW', 'KCOE', 'KMLP', 'KPIH', 'KIDA', + 'KMSO', 'KACV', 'KHLN', 'KBIL', 'KOLF', 'KRUT', 'KPSM', 'KJAX', 'KTPA', 'KSHV', 'KMSY', + 'KELP', 'KRNO', 'KFAT', 'KSFO', 'KNYL', 'KBRO', 'KMRF', 'KDRT', 'KFAR', 'KBDE', 'KDLH', + 'KHOT', 'KLBF', 'KFLG', 'KCLE', 'KUNV'] + + # set the location names to the desired station IDs request.setLocationNames(*(selected)) -Here we use the Python-AWIPS class **TimeRange** to prepare a beginning -and end time span for requesting observations (the last hour): +`Top `__ + +-------------- + +4 Filter by Time +---------------- + +Here we decide how much data we want to pull from EDEX. By default we’ll +request 1 hour, but that value can easily be modified by `adjusting the +``timedelta(hours = 1)`` `__ +in line ``2``. The more data we request, the longer this section will +take to run. .. code:: ipython3 @@ -76,20 +176,65 @@ and end time span for requesting observations (the last hour): beginRange = datetime.strptime( start + ":00:00", "%Y-%m-%d %H:%M:%S") endRange = datetime.strptime( start + ":59:59", "%Y-%m-%d %H:%M:%S") timerange = TimeRange(beginRange, endRange) - - response = DataAccessLayer.getGeometryData(request,timerange) + +`Top `__ + +-------------- + +5 Use the Data! +--------------- + +5.1 Get the Data! +~~~~~~~~~~~~~~~~~ + +Now that we have our ``request`` and TimeRange ``timerange`` objects +ready, we’re ready to get the data array from EDEX. .. code:: ipython3 + # Get response + response = DataAccessLayer.getGeometryData(request,timerange) + +5.2 Extract all Parameters +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In this section we start gathering all the information we’ll need to +properly display our data. First we create an empty dictionary and array +to keep track of all data and unique station IDs. We also create a +boolean to help us only grab the first entry for ``skyCover`` related to +a station id. + +.. container:: alert-info + + :: + + Note: The way the data responses are returned, we recieve many skyCover entries for each station ID, but we only want to keep track of the most recent one (first one returned). + +After defining these variables, we are ready to start looping through +our response data. If the response is an entry of ``skyCover``, and this +is a new station id, then set the skyCover value in the obs dictionary. +If this is not a skyCover entry, then explicitly set the ``timeObs`` +variable (because we have to manipulate it slightly), and dynamically +set all the remaining parameters. + +.. code:: ipython3 + + # define a dictionary and array that will be populated from our for loop below + obs = dict({params: [] for params in params}) station_names = [] + + # only grab the first skyCover record related to a station + new_station_id = True + # cycle through all the data in the response for ob in response: avail_params = ob.getParameters() - if "presWeather" in avail_params: - pres_weather.append(ob.getString("presWeather")) - elif "skyCover" in avail_params and "skyLayerBase" in avail_params: - sky_cov.append(ob.getString("skyCover")) - sky_layer_base.append(ob.getNumber("skyLayerBase")) - else: + # if it has cloud information and is the first entry for this station id + if "skyCover" in avail_params and new_station_id: + # store the associated cloud cover int for the skyCover string + obs['skyCover'].append(get_cloud_cover(ob.getString("skyCover"))) + new_station_id = False + elif "stationName" in avail_params: + new_station_id=True # If we already have a record for this stationName, skip if ob.getString('stationName') not in station_names: station_names.append(ob.getString('stationName')) @@ -104,21 +249,14 @@ and end time span for requesting observations (the last hour): obs[param].append(ob.getString(param)) else: obs[param].append(None) - - obs['presWeather'].append(pres_weather); - obs['skyCover'].append(sky_cov); - obs['skyLayerBase'].append(sky_layer_base); - pres_weather = [] - sky_cov = [] - sky_layer_base = [] -Next grab the simple variables out of the data we have (attaching -correct units), and put them into a dictionary that we will hand the -plotting function later: +5.3 Populate the Data Dictionary +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Get wind components from speed and direction -- Convert cloud fraction values to integer codes [0 - 8] -- Map METAR weather codes to WMO codes for weather symbols +Next grab the variables out of the obs dictionary we just populated, +attach correct units, (calculate their components, in the instance of +wind) and put them into a new dictionary that we will hand the plotting +function later. .. code:: ipython3 @@ -128,7 +266,6 @@ plotting function later: data['longitude'] = np.array(obs['longitude']) data['air_temperature'] = np.array(obs['temperature'], dtype=float)* units.degC data['dew_point_temperature'] = np.array(obs['dewpoint'], dtype=float)* units.degC - data['air_pressure_at_sea_level'] = np.array(obs['seaLevelPress'])* units('mbar') direction = np.array(obs['windDir']) direction[direction == -9999.0] = 'nan' @@ -136,37 +273,35 @@ plotting function later: u, v = wind_components(np.array(obs['windSpeed']) * units('knots'), direction * units.degree) data['eastward_wind'], data['northward_wind'] = u, v - data['cloud_coverage'] = [int(get_cloud_cover(x)*8) for x in obs['skyCover']] - data['present_weather'] = obs['presWeather'] + data['cloud_coverage'] = np.array(obs['skyCover']) -.. code:: ipython3 +`Top `__ - print(obs['stationName']) +-------------- +6 Plot the Data! +---------------- -.. parsed-literal:: +Now we have all the data we need to create our plot! First we’ll assign +a projection and create our figure and axes. - ['K0CO', 'KHOT', 'KSHV', 'KIND', 'KBDE', 'KPSM', 'KORD', 'KDFW', 'KPHL', 'KTTF', 'KBDG', 'KOLY', 'KNYC', 'KABQ', 'KLEX', 'KDRT', 'KELP', 'KRUT', 'KRIC', 'KPIT', 'KMSP', 'KHSV', 'KUNV', 'KSAT', 'KCLE', 'KPHX', 'KMIA', 'KBOI', 'KBRO', 'KLAX', 'KLBB', 'KMSO', 'KPDX', 'KTLH', 'KUIL', 'KTPA', 'KVIH', 'KBIL', 'KMLF', 'KCPR', 'KATL', 'KBIS', 'KCLT', 'KOKC', 'KRAP', 'KACV', 'KEPH', 'KELY', 'KFAR', 'KFAT', 'KMSY', 'KOLF', 'KPDT', 'KLMT', 'KHLN', 'KHOU', 'KICT', 'KIDA', 'KPIH', 'KPUW', 'KGJT', 'KGLD', 'KGRB', 'KLBF', 'KMLP', 'KBOS', 'KSYR', 'KDLH', 'KCOE', 'KOTH', 'KCRW', 'KSEA', 'KCAR', 'KDSM', 'KJAN', 'KSLC', 'KBUY', 'KLNK', 'KMEM', 'KNYL', 'KRDM', 'KCHS', 'KFSD', 'KJAX', 'KMOB', 'KRNO', 'KSFO', 'KWMC', 'KFLG', 'KLSV'] +Next, we use Cartopy to add common features (land, ocean, lakes, +borders, etc) to help give us a more contextual map of the United States +to plot the METAR stations on. We create and add a title for our figure +as well. +Additionally, we use `MetPy’s +StationPlotLayout `__ +to instantiate a custom layout and define all the attributes we want +displayed. We need to then set the data dictionary (containing all of +our data values) on the custom layout so it knows what to draw. -MetPy Surface Obs Plot ----------------------- +Finally, we display the plot! .. code:: ipython3 proj = ccrs.LambertConformal(central_longitude=-95, central_latitude=35, standard_parallels=[35]) - - # Change the DPI of the figure - plt.rcParams['savefig.dpi'] = 255 - - # Winds, temps, dewpoint, station id - custom_layout = StationPlotLayout() - custom_layout.add_barb('eastward_wind', 'northward_wind', units='knots') - custom_layout.add_value('NW', 'air_temperature', fmt='.0f', units='degF', color='darkred') - custom_layout.add_value('SW', 'dew_point_temperature', fmt='.0f', units='degF', color='darkgreen') - custom_layout.add_value('E', 'precipitation', fmt='0.1f', units='inch', color='blue') - # Create the figure fig = plt.figure(figsize=(20, 10)) ax = fig.add_subplot(1, 1, 1, projection=proj) @@ -183,13 +318,87 @@ MetPy Surface Obs Plot ax.set_extent((-118, -73, 23, 50)) ax.set_title(str(ob.getDataTime()) + " | METAR | " + edexServer) + # Winds, temps, dewpoint, station id + custom_layout = StationPlotLayout() + custom_layout.add_barb('eastward_wind', 'northward_wind', units='knots') + custom_layout.add_value('NW', 'air_temperature', fmt='.0f', units='degF', color='darkred') + custom_layout.add_value('SW', 'dew_point_temperature', fmt='.0f', units='degF', color='darkgreen') + custom_layout.add_symbol('C', 'cloud_coverage', sky_cover) + stationplot = StationPlot(ax, data['longitude'], data['latitude'], clip_on=True, transform=ccrs.PlateCarree(), fontsize=10) stationplot.plot_text((2, 0), data['stid']) custom_layout.plot(stationplot, data) + plt.show() -.. image:: METAR_Station_Plot_with_MetPy_files/METAR_Station_Plot_with_MetPy_10_0.png +.. image:: METAR_Station_Plot_with_MetPy_files/METAR_Station_Plot_with_MetPy_26_0.png + +`Top `__ + +-------------- + +7 See Also +---------- + +- `Aviation Weather Center Static METAR Plots + Information `__ + +7.1 Related Notebooks +~~~~~~~~~~~~~~~~~~~~~ + +- `Grid Levels and + Parameters `__ +- `Colored Surface Temperature + Plot `__ + +7.2 Additional Documentation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +**python-awips:** + +- `DataAccessLayer.changeEDEXHost() `__ +- `DataAccessLayer.newDataRequest() `__ +- `IDataRequest `__ +- `DataAccessLayer.getGeometryData `__ + +**datetime:** + +- `datetime.datetime `__ +- `datetime.utcnow() `__ +- `datetime.timedelta `__ +- `datetime.strftime() and + datetime.strptime() `__ + +**numpy:** + +- `np.array `__ + +**cartopy:** + +- `cartopy projection + list `__ +- `cartopy feature + interface `__ + +**matplotlib:** + +- `matplotlib.pyplot() `__ +- `matplotlib.pyplot.figure() `__ +- `matplotlib.pyplot.figure.add_subplot `__ +- `ax.set_extent `__ +- `ax.set_title `__ + +**metpy:** + +- `metpy.calc.wind_components `__ +- `metpy.plots.StationPlot() `__ +- `metpy.plots.StationPlotLayout() `__ +- `metpy.units `__ + +`Top `__ + +-------------- diff --git a/_static/_sphinx_javascript_frameworks_compat.js b/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 0000000..8549469 --- /dev/null +++ b/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,134 @@ +/* + * _sphinx_javascript_frameworks_compat.js + * ~~~~~~~~~~ + * + * Compatability shim for jQuery and underscores.js. + * + * WILL BE REMOVED IN Sphinx 6.0 + * xref RemovedInSphinx60Warning + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/_static/basic.css b/_static/basic.css index bf18350..9039e02 100644 --- a/_static/basic.css +++ b/_static/basic.css @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 450px; + min-width: 360px; max-width: 800px; } @@ -335,13 +335,13 @@ p.sidebar-title { font-weight: bold; } -div.admonition, div.topic, blockquote { +div.admonition, div.topic, aside.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ -div.topic { +div.topic, aside.topic { border: 1px solid #ccc; padding: 7px; margin: 10px 0 10px 0; @@ -380,6 +380,7 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, div.topic > :last-child, +aside.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; } @@ -387,6 +388,7 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, div.topic::after, +aside.topic::after, div.admonition::after, blockquote::after { display: block; @@ -428,10 +430,6 @@ table.docutils td, table.docutils th { border-bottom: 1px solid #aaa; } -table.footnote td, table.footnote th { - border: 0 !important; -} - th { text-align: left; padding-right: 5px; @@ -615,6 +613,7 @@ ul.simple p { margin-bottom: 0; } +/* Docutils 0.17 and older (footnotes & citations) */ dl.footnote > dt, dl.citation > dt { float: left; @@ -632,6 +631,33 @@ dl.citation > dd:after { clear: both; } +/* Docutils 0.18+ (footnotes & citations) */ +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +/* Footnotes & citations ends */ + dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; diff --git a/_static/doctools.js b/_static/doctools.js index e1bfd70..c3db08d 100644 --- a/_static/doctools.js +++ b/_static/doctools.js @@ -2,357 +2,263 @@ * doctools.js * ~~~~~~~~~~~ * - * Sphinx JavaScript utilities for all documentation. + * Base JavaScript utilities for all Sphinx HTML documentation. * * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ +"use strict"; -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - * - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL - */ -jQuery.urldecode = function(x) { - if (!x) { - return x +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); } - return decodeURIComponent(x.replace(/\+/g, ' ')); }; /** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in + * highlight a given string on a node by wrapping it in * span elements with the given class name. */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + parent.insertBefore( + span, + parent.insertBefore( document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); } } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; }; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; /** * Small JavaScript module for the documentation. */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - this.initOnKeyListeners(); +const Documentation = { + init: () => { + Documentation.highlightSearchWords(); + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); }, /** * i18n support */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } }, - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; }, - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; }, /** * highlight the search words provided in the url in the text */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, + highlightSearchWords: () => { + const highlight = + new URLSearchParams(window.location.search).get("highlight") || ""; + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); }, /** * helper function to hide the search marks again */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - var url = new URL(window.location); - url.searchParams.delete('highlight'); - window.history.replaceState({}, '', url); + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + const url = new URL(window.location); + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); }, - /** + /** * helper function to focus on search bar */ - focusSearchBar : function() { - $('input[name=q]').first().focus(); + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** - * make the url absolute + * Initialise the domain index toggle buttons */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { + initOnKeyListeners: () => { // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - return; + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON') { - if (event.altKey || event.ctrlKey || event.metaKey) - return; + const blacklistedElements = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", + ]); + document.addEventListener("keydown", (event) => { + if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements + if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys - if (!event.shiftKey) { - switch (event.key) { - case 'ArrowLeft': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - break; - case 'ArrowRight': - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) - break; - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - break; - case 'Escape': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.hideSearchWords(); - return false; - } - } - - // some keyboard layouts may need Shift to get / + if (!event.shiftKey) { switch (event.key) { - case '/': - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) - break; - Documentation.focusSearchBar(); - return false; + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + case "Escape": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.hideSearchWords(); + event.preventDefault(); } } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } }); - } + }, }; // quick alias for translations -_ = Documentation.gettext; +const _ = Documentation.gettext; -$(document).ready(function() { - Documentation.init(); -}); +_ready(Documentation.init); diff --git a/_static/documentation_options.js b/_static/documentation_options.js index 724e382..a750e4d 100644 --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,7 +1,7 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), VERSION: '', - LANGUAGE: 'None', + LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', FILE_SUFFIX: '.html', @@ -10,5 +10,5 @@ var DOCUMENTATION_OPTIONS = { SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, + ENABLE_SEARCH_SHORTCUTS: false, }; \ No newline at end of file diff --git a/_static/jquery-3.5.1.js b/_static/jquery-3.6.0.js similarity index 98% rename from _static/jquery-3.5.1.js rename to _static/jquery-3.6.0.js index 5093733..fc6c299 100644 --- a/_static/jquery-3.5.1.js +++ b/_static/jquery-3.6.0.js @@ -1,15 +1,15 @@ /*! - * jQuery JavaScript Library v3.5.1 + * jQuery JavaScript Library v3.6.0 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright OpenJS Foundation and other contributors * Released under the MIT license * https://jquery.org/license * - * Date: 2020-05-04T22:49Z + * Date: 2021-03-02T17:08Z */ ( function( global, factory ) { @@ -76,12 +76,16 @@ var support = {}; var isFunction = function isFunction( obj ) { - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; var isWindow = function isWindow( obj ) { @@ -147,7 +151,7 @@ function toType( obj ) { var - version = "3.5.1", + version = "3.6.0", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -401,7 +405,7 @@ jQuery.extend( { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? - [ arr ] : arr + [ arr ] : arr ); } else { push.call( ret, arr ); @@ -496,9 +500,9 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); function isArrayLike( obj ) { @@ -518,14 +522,14 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.5 + * Sizzle CSS Selector Engine v2.3.6 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2020-03-14 + * Date: 2021-02-16 */ ( function( window ) { var i, @@ -1108,8 +1112,8 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -3024,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext; function nodeName( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); -}; +} var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); @@ -3997,8 +4001,8 @@ jQuery.extend( { resolveContexts = Array( i ), resolveValues = slice.call( arguments ), - // the master Deferred - master = jQuery.Deferred(), + // the primary Deferred + primary = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { @@ -4006,30 +4010,30 @@ jQuery.extend( { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); + primary.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, !remaining ); // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || + if ( primary.state() === "pending" || isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - return master.then(); + return primary.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); } - return master.promise(); + return primary.promise(); } } ); @@ -4180,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } @@ -5089,10 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; @@ -5387,8 +5388,8 @@ jQuery.event = { event = jQuery.event.fix( nativeEvent ), handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5512,12 +5513,12 @@ jQuery.event = { get: isFunction( hook ) ? function() { if ( this.originalEvent ) { - return hook( this.originalEvent ); + return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { - return this.originalEvent[ name ]; + return this.originalEvent[ name ]; } }, @@ -5656,7 +5657,13 @@ function leverageNative( el, type, expectSync ) { // Cancel the outer synthetic event event.stopImmediatePropagation(); event.preventDefault(); - return result.value; + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; } // If this is an inner synthetic event for an event with a bubbling surrogate @@ -5821,34 +5828,7 @@ jQuery.each( { targetTouches: true, toElement: true, touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } + which: true }, jQuery.event.addProp ); jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { @@ -5874,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp return true; }, + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + delegateType: delegateType }; } ); @@ -6541,6 +6527,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); // set in CSS while `offset*` properties report correct values. // Behavior in IE 9 is more subtle than in newer versions & it passes // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) reliableTrDimensions: function() { var table, tr, trChild, trStyle; if ( reliableTrDimensionsVal == null ) { @@ -6548,17 +6538,32 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); tr = document.createElement( "tr" ); trChild = document.createElement( "div" ); - table.style.cssText = "position:absolute;left:-11111px"; + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. tr.style.height = "1px"; trChild.style.height = "9px"; + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + documentElement .appendChild( table ) .appendChild( tr ) .appendChild( trChild ); trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; documentElement.removeChild( table ); } @@ -7022,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) { // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); } }, @@ -7084,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) - ) + "px"; + ) + "px"; } } ); @@ -7223,7 +7228,7 @@ Tween.propHooks = { if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || + jQuery.cssHooks[ tween.prop ] || tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { @@ -7468,7 +7473,7 @@ function defaultPrefilter( elem, props, opts ) { anim.done( function() { - /* eslint-enable no-loop-func */ + /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { @@ -7588,7 +7593,7 @@ function Animation( elem, properties, options ) { tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, @@ -7761,7 +7766,8 @@ jQuery.fn.extend( { anim.stop( true ); } }; - doAnimation.finish = doAnimation; + + doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : @@ -8401,8 +8407,8 @@ jQuery.fn.extend( { if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" + "" : + dataPriv.get( this, "__className__" ) || "" ); } } @@ -8417,7 +8423,7 @@ jQuery.fn.extend( { while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; + return true; } } @@ -8707,9 +8713,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8856,7 +8860,7 @@ var rquery = ( /\?/ ); // Cross-browser xml parsing jQuery.parseXML = function( data ) { - var xml; + var xml, parserErrorElem; if ( !data || typeof data !== "string" ) { return null; } @@ -8865,12 +8869,17 @@ jQuery.parseXML = function( data ) { // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } + } catch ( e ) {} - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); } return xml; }; @@ -8971,16 +8980,14 @@ jQuery.fn.extend( { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { + } ).filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { + } ).map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -9033,7 +9040,8 @@ var // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; + +originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { @@ -9414,8 +9422,8 @@ jQuery.extend( { // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, + jQuery( callbackContext ) : + jQuery.event, // Deferreds deferred = jQuery.Deferred(), @@ -9727,8 +9735,10 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { s.converters[ "text script" ] = function() {}; } @@ -10466,12 +10476,6 @@ jQuery.offset = { options.using.call( elem, props ); } else { - if ( typeof props.top === "number" ) { - props.top += "px"; - } - if ( typeof props.left === "number" ) { - props.left += "px"; - } curElem.css( props ); } } @@ -10640,8 +10644,11 @@ jQuery.each( [ "top", "left" ], function( _i, prop ) { // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { - jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, - function( defaultExtra, funcName ) { + jQuery.each( { + padding: "inner" + name, + content: type, + "": "outer" + name + }, function( defaultExtra, funcName ) { // Margin is only for outerHeight, outerWidth jQuery.fn[ funcName ] = function( margin, value ) { @@ -10726,7 +10733,8 @@ jQuery.fn.extend( { } } ); -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + +jQuery.each( + ( "blur focus focusin focusout resize scroll click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup contextmenu" ).split( " " ), function( _i, name ) { @@ -10737,7 +10745,8 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + this.on( name, null, data, fn ) : this.trigger( name ); }; - } ); + } +); diff --git a/_static/jquery.js b/_static/jquery.js index b061403..c4c6022 100644 --- a/_static/jquery.js +++ b/_static/jquery.js @@ -1,2 +1,2 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 { + const [docname, title, anchor, descr, score, filename] = result + return score }, */ @@ -28,9 +30,11 @@ if (!Scorer) { // or matches in the last dotted part of the object name objPartialMatch: 6, // Additive scores depending on the priority of the object - objPrio: {0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5}, // used to be unimportantResults + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, // Used when the priority is not in the mapping. objPrioDefault: 0, @@ -39,452 +43,455 @@ if (!Scorer) { partialTitle: 7, // query found in terms term: 5, - partialTerm: 2 + partialTerm: 2, }; } -if (!splitQuery) { - function splitQuery(query) { - return query.split(/\s+/); +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, highlightTerms, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; } + const params = new URLSearchParams(); + params.set("highlight", [...highlightTerms].join(" ")); + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + "?" + params.toString() + anchor; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerText = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, highlightTerms) + ); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + highlightTerms, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), highlightTerms, searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings } /** * Search Module */ -var Search = { +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, - _index : null, - _queued_query : null, - _pulse_status : -1, - - htmlToText : function(htmlString) { - var virtualDocument = document.implementation.createHTMLDocument('virtual'); - var htmlElement = $(htmlString, virtualDocument); - htmlElement.find('.headerlink').remove(); - docContent = htmlElement.find('[role=main]')[0]; - if(docContent === undefined) { - console.warn("Content block not found. Sphinx search tries to obtain it " + - "via '[role=main]'. Could you check your theme or template."); - return ""; - } - return docContent.textContent || docContent.innerText; + htmlToText: (htmlString) => { + const htmlElement = document + .createRange() + .createContextualFragment(htmlString); + _removeChildren(htmlElement.querySelectorAll(".headerlink")); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; }, - init : function() { - var params = $.getQueryParameters(); - if (params.q) { - var query = params.q[0]; - $('input[name="q"]')[0].value = query; - this.performSearch(query); - } + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); }, - loadIndex : function(url) { - $.ajax({type: "GET", url: url, data: null, - dataType: "script", cache: true, - complete: function(jqxhr, textstatus) { - if (textstatus != "success") { - document.getElementById("searchindexloader").src = url; - } - }}); - }, + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), - setIndex : function(index) { - var q; - this._index = index; - if ((q = this._queued_query) !== null) { - this._queued_query = null; - Search.query(q); + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); } }, - hasIndex : function() { - return this._index !== null; - }, + hasIndex: () => Search._index !== null, - deferQuery : function(query) { - this._queued_query = query; - }, + deferQuery: (query) => (Search._queued_query = query), - stopPulse : function() { - this._pulse_status = 0; - }, + stopPulse: () => (Search._pulse_status = -1), - startPulse : function() { - if (this._pulse_status >= 0) - return; - function pulse() { - var i; + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { Search._pulse_status = (Search._pulse_status + 1) % 4; - var dotString = ''; - for (i = 0; i < Search._pulse_status; i++) - dotString += '.'; - Search.dots.text(dotString); - if (Search._pulse_status > -1) - window.setTimeout(pulse, 500); - } + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; pulse(); }, /** * perform a search for something (or wait until index is loaded) */ - performSearch : function(query) { + performSearch: (query) => { // create the required interface elements - this.out = $('#search-results'); - this.title = $('

' + _('Searching') + '

').appendTo(this.out); - this.dots = $('').appendTo(this.title); - this.status = $('

 

').appendTo(this.out); - this.output = $('
-

Data Interfaces

+

Data Interfaces

IData

  • Object getAttribute(String key) - getAttribute provides a way @@ -604,7 +605,7 @@ cell

-

Factory Interfaces (Java only)

+

Factory Interfaces (Java only)

  • IDataFactory

  • DataTime[] getAvailableTimes(R request) - queries the diff --git a/examples/generated/Colored_Surface_Temperature_Plot.html b/examples/generated/Colored_Surface_Temperature_Plot.html index 2853d00..f043439 100644 --- a/examples/generated/Colored_Surface_Temperature_Plot.html +++ b/examples/generated/Colored_Surface_Temperature_Plot.html @@ -14,6 +14,7 @@ + @@ -106,12 +107,12 @@

    -

    Colored Surface Temperature Plot

    +

    Colored Surface Temperature Plot

    Notebook Python-AWIPS Tutorial Notebook


    -

    Objectives

    +

    Objectives

    • Use python-awips to connect to an edex server

    • Define and filter data request for METAR surface obs

    • @@ -120,7 +121,7 @@ Python-AWIPS Tutorial Notebook


    -

    Table of Contents

    +

    Table of Contents

    @@ -146,7 +147,7 @@ Documentation

    -

    1 Imports

    +

    1 Imports

    The imports below are used throughout the notebook. Note the first import is coming directly from python-awips and allows us to connect to an EDEX server. The subsequent imports are for data manipulation and @@ -166,9 +167,9 @@ visualization.


    -

    2 Initial Setup

    +

    2 Initial Setup

    -

    2.1 Geographic Filter

    +

    2.1 Geographic Filter

    By defining a bounding box for the Continental US (CONUS), we’re able to optimize the data request sent to the EDEX server.

    # CONUS bounding box and envelope geometry
    @@ -180,7 +181,7 @@ optimize the data request sent to the EDEX server.

    -

    2.2 EDEX Connection

    +

    2.2 EDEX Connection

    First we establish a connection to Unidata’s public EDEX server. With that connection made, we can create a new data request object @@ -199,7 +200,7 @@ just created.


    -

    3 Filter by Time

    +

    3 Filter by Time

    We then want to limit our results based on time, so we create a time range for the last 15 minutes, and then send the request to the EDEX server to get our results, which are kept in the obs variable.

    @@ -230,7 +231,7 @@ server to get our results, which are kept in the obs variable.<

    -

    4 Access and Convert Temp Data

    +

    4 Access and Convert Temp Data

    We access the temperature data from the obs variable which is stored in degrees Celsius (°C). To make it more relatable, we then convert the data to degrees Fahreheit (°F)

    @@ -247,7 +248,7 @@ convert the data to degrees Fahreheit (°F)


    -

    5 Define Temperature Thresholds

    +

    5 Define Temperature Thresholds

    In order to distinguish the temperatures, we’ll create a color map to separate the values into different colors. This mapping will be used when plotting the temperature values on the map of the United States.

    @@ -271,7 +272,7 @@ affects the final plot.


    -

    6 Plot the Data!

    +

    6 Plot the Data!

    Here we create a plot and cycle through all the values from our color mapping. For each segement of our color mapping, mask the temperature values to only include the relevent temperatures and draw those on the @@ -306,9 +307,9 @@ final, colored figure.


    -

    7 See Also

    +

    7 See Also

    -

    7.1 Additional Documention

    +

    7.1 Additional Documention

    python-awips

    • DataAccessLayer.changeEDEXHost()

    • diff --git a/examples/generated/Colorized_Grid_Data.html b/examples/generated/Colorized_Grid_Data.html index a8720c0..2d62b0f 100644 --- a/examples/generated/Colorized_Grid_Data.html +++ b/examples/generated/Colorized_Grid_Data.html @@ -14,6 +14,7 @@ + @@ -105,12 +106,12 @@
      -

      Colorized Grid Data

      +

      Colorized Grid Data

      Notebook Python-AWIPS Tutorial Notebook


      -

      Objectives

      +

      Objectives

      • Create a colorized plot for the continental US of model data (grib).

      • Access the model data from an EDEX server and limit the data returned @@ -120,7 +121,7 @@ compare the differences between the two.


      -

      Table of Contents

      +

      Table of Contents

      @@ -146,7 +147,7 @@ Documentation

      -

      1 Imports

      +

      1 Imports

      Start by importing both the python-awips specific library, as well as the libraries needed for plotting and manipulating the data

      from awips.dataaccess import DataAccessLayer
      @@ -160,7 +161,7 @@ the libraries needed for plotting and manipulating the data


      -

      2 Define Data Request

      +

      2 Define Data Request

      If you read through the python-awips: How to Access Data training, you will know that we need to set an EDEX url to access our @@ -187,7 +188,7 @@ in meters), respectively.


      -

      3 Limit Results Based on Time

      +

      3 Limit Results Based on Time

      Models produce many different time variants during their runs, so let’s limit the data to the most recent time and forecast run.

      @@ -213,7 +214,7 @@ to see the differences.


      -

      4 Function: make_map()

      +

      4 Function: make_map()

      In order to plot more than one image, it’s easiest to define common logic in a function. Here, a new function called make_map is defined. This function uses the matplotlib.pyplot package @@ -236,7 +237,7 @@ added, along with lat/lon grids.


      -

      5 Use the Grid Data!

      +

      5 Use the Grid Data!

      Here we get our grid data object from our previous response, and then get the raw data array off that object. We also get the latitude and longitude arrays, and create a bounding box that we’ll use when creating @@ -254,7 +255,7 @@ understandable.

    -

    5.1 Plot Using pcolormesh

    +

    5.1 Plot Using pcolormesh

    This example shows how to use matplotlib.pyplot.pcolormesh to create a colorized plot. We use our make_map function to create a @@ -280,7 +281,7 @@ okay, and will go away with subsequent runs of the cell.

    ../../_images/Colorized_Grid_Data_21_1.png
    -

    5.2 Plot Using contourf

    +

    5.2 Plot Using contourf

    This example shows how to use matplotlib.pyplot.contourf to create a colorized plot. We use our make_map function to create a @@ -301,16 +302,16 @@ a label for our plot.


    -

    6 See Also

    +

    6 See Also

    -

    6.2 Additional Documentation

    +

    6.2 Additional Documentation

    python-awips:

    • awips.DataAccessLayer

    • diff --git a/examples/generated/Forecast_Model_Vertical_Sounding.html b/examples/generated/Forecast_Model_Vertical_Sounding.html index 874ad77..420d421 100644 --- a/examples/generated/Forecast_Model_Vertical_Sounding.html +++ b/examples/generated/Forecast_Model_Vertical_Sounding.html @@ -14,6 +14,7 @@ + @@ -97,7 +98,7 @@
      -

      Forecast Model Vertical Sounding

      +

      Forecast Model Vertical Sounding

      Notebook The ModelSounding class allows us to create a vertical sounding through any available AWIPS model with isobaric levels.

      @@ -230,7 +231,7 @@ are returned as Kelvin and wind components as m/s.


      -

      Skew-T/Log-P

      +

      Skew-T/Log-P

      plt.rcParams['figure.figsize'] = (12, 14)
       
       # Skew-T
      @@ -263,7 +264,7 @@ are returned as Kelvin and wind components as m/s.

      ../../_images/Forecast_Model_Vertical_Sounding_5_0.png
      -

      Model Sounding Comparison

      +

      Model Sounding Comparison

      models = ["CMC", "GFS20", "NAM40"]
       parms = ['T','DpT','uW','vW']
       
      diff --git a/examples/generated/GOES_CIRA_Product_Writer.html b/examples/generated/GOES_CIRA_Product_Writer.html
      index f3de8cb..0399ba9 100644
      --- a/examples/generated/GOES_CIRA_Product_Writer.html
      +++ b/examples/generated/GOES_CIRA_Product_Writer.html
      @@ -14,6 +14,7 @@
               
               
               
      +        
               
           
           
      @@ -105,12 +106,12 @@
                  
      -

      GOES CIRA Product Writer

      +

      GOES CIRA Product Writer

      Notebook Python-AWIPS Tutorial Notebook


      -

      Objectives

      +

      Objectives


      -

      Table of Contents

      +

      Table of Contents

      @@ -154,7 +155,7 @@ Documentation

      -

      1 Imports

      +

      1 Imports

      The imports below are used throughout the notebook. Note the first import is coming directly from python-awips and allows us to connect to an EDEX server. The subsequent imports are for data manipulation and @@ -172,9 +173,9 @@ visualization.


      -

      2 Initial Setup

      +

      2 Initial Setup

      -

      2.1 EDEX Connection

      +

      2.1 EDEX Connection

      First we establish a connection to Unidata’s public EDEX server. With that connection made, we can create a new data request object @@ -187,7 +188,7 @@ and set the data type to satellite.

      -

      2.2 Parameter Definition

      +

      2.2 Parameter Definition

      After establishing the python-awips specific objects, we create a few other parameters that will be used for the data query based off of known values: projection, and extent.

      @@ -207,7 +208,7 @@ values: projection, and extent.


      -

      3 Function: set_size()

      +

      3 Function: set_size()

      Here we’re defining a function that will allow us to pass in the dimensions of the output file we desire in pixels. Default Python methods require the size to be set in inches, which is confusing in our @@ -247,7 +248,7 @@ pixels, with no padding or buffers.


      -

      4 Function: write_img()

      +

      4 Function: write_img()

      Next, we’re defining another function which takes the image data, file name, projection, extent, reference time, and whether or not to print out a footnote.

      @@ -292,9 +293,9 @@ modify these values if you wish to print out an image of another size

      -

      5 Get the Data and Write it Out!

      +

      5 Get the Data and Write it Out!

      -

      5.1 Filter the Data

      +

      5.1 Filter the Data

      Define exactly what data we want to be printing out. This notebook is designed to loop through and print out multiple images, so here we can pick which images we’re wanting to print out. We’re specifying @@ -332,7 +333,7 @@ after the dataType has been set to satellite on the request object:

      -

      5.2 Define Output Location

      +

      5.2 Define Output Location

      Here we define a folder for where the satellite images will be written to. The default directory is a new folder called ‘output’ that lives whereever this notebook lives.

      @@ -361,7 +362,7 @@ depend on where this notebook is located. For example (for a Mac):

      -

      5.3 Write Out GOES Images

      +

      5.3 Write Out GOES Images

      # First loop through the sectors (location names)
       for sector in sectors:
       
      @@ -471,16 +472,16 @@ Done!
       

      -

      6 See Also

      +

      6 See Also

      -

      6.2 Additional Documentation

      +

      6.2 Additional Documentation

      CIRA Quick Guides

      • DEBRA-Dust

      • diff --git a/examples/generated/GOES_Geostationary_Lightning_Mapper.html b/examples/generated/GOES_Geostationary_Lightning_Mapper.html index 203d396..a5df29c 100644 --- a/examples/generated/GOES_Geostationary_Lightning_Mapper.html +++ b/examples/generated/GOES_Geostationary_Lightning_Mapper.html @@ -14,6 +14,7 @@ + @@ -96,7 +97,7 @@
        -

        GOES Geostationary Lightning Mapper

        +

        GOES Geostationary Lightning Mapper

        Notebook The Geostationary Lightning Mapper, or GLM, on board GOES-R Series spacecraft, is the first operational lightning mapper flown in @@ -124,7 +125,7 @@ tornadoes, hurricanes, flash floods, snowstorms and fires.

      • strikeType

      -

      GLM Sources and Parameters

      +

      GLM Sources and Parameters

      from awips.dataaccess import DataAccessLayer
       import cartopy.crs as ccrs
       import cartopy.feature as cfeat
      diff --git a/examples/generated/Grid_Levels_and_Parameters.html b/examples/generated/Grid_Levels_and_Parameters.html
      index bcd38c4..1fc593b 100644
      --- a/examples/generated/Grid_Levels_and_Parameters.html
      +++ b/examples/generated/Grid_Levels_and_Parameters.html
      @@ -14,6 +14,7 @@
               
               
               
      +        
               
           
           
      @@ -109,12 +110,12 @@
                  
      -

      Grid Levels and Parameters

      +

      Grid Levels and Parameters

      Notebook Python-AWIPS Tutorial Notebook


      -

      Objectives

      +

      Objectives

      • Cover the relevant methods for accessing EDEX and investigating what data is available.

      • @@ -127,7 +128,7 @@ might be a helpful reference.


      -

      Table of Contents

      +

      Table of Contents

      @@ -155,7 +156,7 @@ Notebooks

      -

      1 Imports

      +

      1 Imports

      Start by importing the DataAccessLayer package from python-awips:

      from awips.dataaccess import DataAccessLayer
       
      @@ -164,7 +165,7 @@ Notebooks

      -

      2 Connect to EDEX

      +

      2 Connect to EDEX

      Define a url for your EDEX connection, and then point python-awips at that EDEX

      # Unidata's cloud EDEX instance is used in this example
      @@ -176,7 +177,7 @@ that EDEX


      -

      3 Get a List of Supported Data Types

      +

      3 Get a List of Supported Data Types

      DataAccessLayer.getSupportedDatatypes() returns a list of supported data types offered by the EDEX server defined above. The code below shows how to populate, sort, and print out @@ -219,7 +220,7 @@ that list.


      -

      4 Create a New Data Request and Set the Type

      +

      4 Create a New Data Request and Set the Type

      Now create a new data request using DataAccessLayer.newDataRequest(), and set the data type using @@ -238,7 +239,7 @@ is where the model data can be found, along with some other datasets


      -

      5 Get Available Locations

      +

      5 Get Available Locations

      Use the DataAccessLayer.getAvailableLocationNames(request) method to find out what locations are available for the given dataset. @@ -316,7 +317,7 @@ outputted for the grid_request, for example.


      -

      6 Get Available Parameters

      +

      6 Get Available Parameters

      We’re setting the “location” (in this case, what model we are interested in) to specify our request before we look at the available parameters.

      Take a look at the available parameters for the data set by using @@ -608,7 +609,7 @@ in) to specify our request before we look at the available parameters.


      -

      7 Get Available Levels

      +

      7 Get Available Levels

      Setting the parameters is just an option, you do not need to filter the data if you do not wish to. Also, although we are only setting one parameter in this example, you can set multiple parameters by using an @@ -899,7 +900,7 @@ likely because levels are not supported for that data type.


      -

      8 Get Available Times

      +

      8 Get Available Times

      Take a look at what time options are available for the data you’re looking at using the DataAccessLayer.getAvailableTimes() @@ -986,7 +987,7 @@ single forecast cycle.


      -

      9 Get the Data!

      +

      9 Get the Data!

      Now that we have our request and DataTime fcstRun arrays ready, it’s time to request the data array from EDEX. Depending on what kind of data we’re working with, we’ll either use @@ -1022,13 +1023,13 @@ visualize the data once you have what you want.


      -

      10 See Also

      +

      10 See Also

      Several functions are used throughout this notebook from the DataAccessLayer class in python-awips, to see full documentation for these functions vist here.

      -

      MetPy SkewT and Hodograph

      +

      MetPy SkewT and Hodograph

      %matplotlib inline
       
       plt.rcParams['figure.figsize'] = (12, 14)
      diff --git a/examples/generated/NEXRAD_Level3_Radar.html b/examples/generated/NEXRAD_Level3_Radar.html
      index d2c7aa2..8fa227b 100644
      --- a/examples/generated/NEXRAD_Level3_Radar.html
      +++ b/examples/generated/NEXRAD_Level3_Radar.html
      @@ -14,6 +14,7 @@
               
               
               
      +        
               
           
           
      @@ -93,7 +94,7 @@
                  
      -

      NEXRAD Level3 Radar

      +

      NEXRAD Level3 Radar

      Notebook .. code:: ipython3

      diff --git a/examples/generated/Precip_Accumulation-Region_Of_Interest.html b/examples/generated/Precip_Accumulation-Region_Of_Interest.html index c061967..5257948 100644 --- a/examples/generated/Precip_Accumulation-Region_Of_Interest.html +++ b/examples/generated/Precip_Accumulation-Region_Of_Interest.html @@ -14,6 +14,7 @@ + @@ -93,7 +94,7 @@
      -

      Precip Accumulation-Region Of Interest

      +

      Precip Accumulation-Region Of Interest

      Notebook A way to determine areas of greatest precipitation and generate imagery for that sector.

      diff --git a/examples/generated/Regional_Surface_Obs_Plot.html b/examples/generated/Regional_Surface_Obs_Plot.html index 4c37ecb..6858303 100644 --- a/examples/generated/Regional_Surface_Obs_Plot.html +++ b/examples/generated/Regional_Surface_Obs_Plot.html @@ -14,6 +14,7 @@ + @@ -98,7 +99,7 @@
      -

      Regional Surface Obs Plot

      +

      Regional Surface Obs Plot

      Notebook This exercise creates a surface observsation station plot for the state of Florida, using both METAR (datatype obs) and Synoptic (datatype @@ -210,7 +211,7 @@ exercise.

      ../../_images/Regional_Surface_Obs_Plot_4_1.png
      -

      Plot METAR (obs)

      +

      Plot METAR (obs)

      Here we use a spatial envelope to limit the request to the boundary or our plot. Without such a filter you may be requesting many tens of thousands of records.

      @@ -298,7 +299,7 @@ plotting function later:


      -

      Plot Synoptic (sfcobs)

      +

      Plot Synoptic (sfcobs)

      # New sfcobs/SYNOP request
       DataAccessLayer.changeEDEXHost(edexServer)
       request = DataAccessLayer.newDataRequest("sfcobs", envelope=envelope)
      @@ -378,7 +379,7 @@ plotting function later:


      -

      Plot both METAR and SYNOP

      +

      Plot both METAR and SYNOP

      custom_layout = StationPlotLayout()
       custom_layout.add_barb('eastward_wind', 'northward_wind', units='knots')
       custom_layout.add_value('NW', 'air_temperature', fmt='.0f', units='degF', color='darkred')
      diff --git a/examples/generated/Satellite_Imagery.html b/examples/generated/Satellite_Imagery.html
      index ad7f17e..f9041e8 100644
      --- a/examples/generated/Satellite_Imagery.html
      +++ b/examples/generated/Satellite_Imagery.html
      @@ -14,6 +14,7 @@
               
               
               
      +        
               
           
           
      @@ -99,13 +100,13 @@
                  
      -

      Satellite Imagery

      +

      Satellite Imagery

      Notebook Satellite images are returned by Python AWIPS as grids, and can be rendered with Cartopy pcolormesh the same as gridded forecast models in other python-awips examples.

      -

      Available Sources, Creating Entities, Sectors, and Products

      +

      Available Sources, Creating Entities, Sectors, and Products

      from awips.dataaccess import DataAccessLayer
       import cartopy.crs as ccrs
       import cartopy.feature as cfeat
      @@ -653,7 +654,7 @@ other python-awips examples.

      -

      GOES 16 Mesoscale Sectors

      +

      GOES 16 Mesoscale Sectors

      Define our imports, and define our map properties first.

      %matplotlib inline
       
      diff --git a/examples/generated/Upper_Air_BUFR_Soundings.html b/examples/generated/Upper_Air_BUFR_Soundings.html
      index d61ce6a..345003d 100644
      --- a/examples/generated/Upper_Air_BUFR_Soundings.html
      +++ b/examples/generated/Upper_Air_BUFR_Soundings.html
      @@ -14,6 +14,7 @@
               
               
               
      +        
               
           
           
      @@ -93,7 +94,7 @@
                  
      -

      Upper Air BUFR Soundings

      +

      Upper Air BUFR Soundings

      Notebook The following script takes you through the steps of retrieving an Upper Air vertical profile from an AWIPS EDEX server and plotting a diff --git a/examples/generated/Watch_Warning_and_Advisory_Plotting.html b/examples/generated/Watch_Warning_and_Advisory_Plotting.html index 915ccb1..5108425 100644 --- a/examples/generated/Watch_Warning_and_Advisory_Plotting.html +++ b/examples/generated/Watch_Warning_and_Advisory_Plotting.html @@ -14,6 +14,7 @@ + @@ -108,12 +109,12 @@

      -

      Watch Warning and Advisory Plotting

      +

      Watch Warning and Advisory Plotting

      Notebook Python-AWIPS Tutorial Notebook


      -

      Objectives

      +

      Objectives


      -

      Table of Contents

      +

      Table of Contents

      @@ -168,7 +169,7 @@ Documentation
      -

      1 Imports

      +

      1 Imports

      The imports below are used throughout the notebook. The python-awips imports allow us to connect to an EDEX server, use the warning lookup dictionary, and define a TimeRange. The additional imports are for data @@ -193,7 +194,7 @@ manipulation and visualization.


      -

      2 Function: make_map()

      +

      2 Function: make_map()

      In order to plot more than one image, it’s easiest to define common logic in a function. However, for this notebook we only use it in one place. It is a function you will find in most of our example notebooks.

      @@ -216,7 +217,7 @@ to create a figure and axis. The lat/lon grids are added.


      -

      3 Function: get_color()

      +

      3 Function: get_color()

      Since we’ll be needing to access the color using the vtec lookup table in several places, creating an easily recognizable function is useful.

      def get_color(phensig):
      @@ -227,7 +228,7 @@ in several places, creating an easily recognizable function is useful.


      -

      4 Function get_title()

      +

      4 Function get_title()

      Similar to the color function just defined, accessing the full name for the phensig will also be necessary, so this function will be helpful.

      def get_title(phensig):
      @@ -238,9 +239,9 @@ the phensig will also be necessary, so this function will be helpful.


      -

      5 Initial Setup

      +

      5 Initial Setup

      -

      5.1 EDEX Connection

      +

      5.1 EDEX Connection

      First we establish a connection to Unidata’s public EDEX server. With that connection made, we can create a new data request object @@ -260,7 +261,7 @@ Levels and Parameters Notebook.

      -

      5.2 Significance (Sig) Constants

      +

      5.2 Significance (Sig) Constants

      The two parameters we’re requesting for our warning objects are phensig and sig where phensig is styled “XX.Y” and sig is “Y”. Phen stands for “Phenomena” and sig stands for “Significance”. A more @@ -280,7 +281,7 @@ message it is (what significance it is).


      -

      6 Filter by Time

      +

      6 Filter by Time

      Here we decide how much data we want to pull from EDEX. By default we’ll request 12 hours, but that value can easily be modified by adjusting the @@ -301,9 +302,9 @@ will take to run.


      -

      7 Use the Data!

      +

      7 Use the Data!

      -

      7.1 Get the Data

      +

      7.1 Get the Data

      Now that we have our request and TimeRange timerange objects ready, it’s time to request the data array from EDEX.

      @@ -321,7 +322,7 @@ run.

      -

      7.2 Extract Phensigs, Geometries, and Times

      +

      7.2 Extract Phensigs, Geometries, and Times

      In this section we start gathering all the information we’ll need to properly display our data. First we create an array to keep track of unique phensigs. This is useful summary information and will be used to @@ -446,9 +447,9 @@ phensig.


      -

      8 Plot the Data!

      +

      8 Plot the Data!

      -

      8.1 Create State and Political Boundaries

      +

      8.1 Create State and Political Boundaries

      Define the state and political boundaries that we’ll use in our plot to give more of a frame of reference. These objects are standard method calls in the Cartopy Feature package, using the NaturalEarthFeature @@ -466,7 +467,7 @@ function.

      -

      8.2 Draw the Plot and Legend for WWAs

      +

      8.2 Draw the Plot and Legend for WWAs

      Here is where we finally get ot draw something! The very first few lines of this section are constants that we can manually “switch on and off” for what records we want displayed. By default we have all significance @@ -570,7 +571,7 @@ all the features to the axes, and add the legend as well.


      -

      9 See Also

      +

      9 See Also

      -

      9.2 Additional Documentation

      +

      9.2 Additional Documentation

      python-awips

      • DataAccessLayer.changeEDEXHost()

      • diff --git a/examples/index.html b/examples/index.html index 94fd3de..399d2ca 100644 --- a/examples/index.html +++ b/examples/index.html @@ -14,6 +14,7 @@ + @@ -92,7 +93,7 @@
        -

        Data Plotting Examples

        +

        Data Plotting Examples

        • Colored Surface Temperature Plot
        • diff --git a/genindex.html b/genindex.html index 68dc615..056acef 100644 --- a/genindex.html +++ b/genindex.html @@ -13,6 +13,7 @@ + diff --git a/index.html b/index.html index 9a01b1b..c944662 100644 --- a/index.html +++ b/index.html @@ -14,6 +14,7 @@ + @@ -74,11 +75,11 @@
          -

          Python AWIPS Data Access Framework

          +

          Python AWIPS Data Access Framework

          The python-awips package provides a data access framework for requesting meteorological and geographic datasets from an EDEX server.

          AWIPS is a weather display and analysis package developed by the National Weather Service for operational forecasting. UCAR’s Unidata Program Center supports a non-operational open-source release of the AWIPS software (EDEX, CAVE, and python-awips).

          -

          Pre-requisite Software

          +

          Pre-requisite Software

          In order to effictively use python-awips you’ll need to have these installed already:
          • python3

          • @@ -89,24 +90,24 @@
          -

          Package-Only Install

          +

          Package-Only Install

          If you already work with Python, you might just be interested in how to install the python-awips pacakge. The package can be installed with either of the two well known package managers: pip and conda.

          -

          Pip Install

          +

          Pip Install

          pip install python-awips
           
          -

          Conda Install

          +

          Conda Install

          conda install -c conda-forge python-awips
           
          -

          Source Code with Examples Install

          +

          Source Code with Examples Install

          Below are instructions on how to install the source code of python-awips, with all included example notebooks. This will create a new conda environment called python3-awips and start up a browser for the jupyter notebook examples.

          git clone https://github.com/Unidata/python-awips.git
           cd python-awips
          @@ -122,7 +123,7 @@ The package can be installed with either of the two well known package managers:
           
          -

          Questions – Contact Us!

          +

          Questions – Contact Us!

          Please feel free to reach out to us at our support email at support-awips@unidata.ucar.edu

          diff --git a/objects.inv b/objects.inv index 6de0e69..fb56b41 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/py-modindex.html b/py-modindex.html index b6d7e22..2e32d73 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -13,6 +13,7 @@ + diff --git a/search.html b/search.html index 1ea39a1..cf4e4e7 100644 --- a/search.html +++ b/search.html @@ -14,6 +14,7 @@ + diff --git a/searchindex.js b/searchindex.js index a4aaf05..77532cc 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["about","api/CombinedTimeQuery","api/DataAccessLayer","api/DateTimeConverter","api/IDataRequest","api/IFPClient","api/ModelSounding","api/PyData","api/PyGeometryData","api/PyGridData","api/RadarCommon","api/ThriftClient","api/ThriftClientRouter","api/TimeUtil","api/index","datatypes","dev","examples/generated/Colored_Surface_Temperature_Plot","examples/generated/Colorized_Grid_Data","examples/generated/Forecast_Model_Vertical_Sounding","examples/generated/GOES_CIRA_Product_Writer","examples/generated/GOES_Geostationary_Lightning_Mapper","examples/generated/Grid_Levels_and_Parameters","examples/generated/METAR_Station_Plot_with_MetPy","examples/generated/Map_Resources_and_Topography","examples/generated/Model_Sounding_Data","examples/generated/NEXRAD_Level3_Radar","examples/generated/Precip_Accumulation-Region_Of_Interest","examples/generated/Regional_Surface_Obs_Plot","examples/generated/Satellite_Imagery","examples/generated/Upper_Air_BUFR_Soundings","examples/generated/Watch_Warning_and_Advisory_Plotting","examples/index","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["about.rst","api/CombinedTimeQuery.rst","api/DataAccessLayer.rst","api/DateTimeConverter.rst","api/IDataRequest.rst","api/IFPClient.rst","api/ModelSounding.rst","api/PyData.rst","api/PyGeometryData.rst","api/PyGridData.rst","api/RadarCommon.rst","api/ThriftClient.rst","api/ThriftClientRouter.rst","api/TimeUtil.rst","api/index.rst","datatypes.rst","dev.rst","examples/generated/Colored_Surface_Temperature_Plot.rst","examples/generated/Colorized_Grid_Data.rst","examples/generated/Forecast_Model_Vertical_Sounding.rst","examples/generated/GOES_CIRA_Product_Writer.rst","examples/generated/GOES_Geostationary_Lightning_Mapper.rst","examples/generated/Grid_Levels_and_Parameters.rst","examples/generated/METAR_Station_Plot_with_MetPy.rst","examples/generated/Map_Resources_and_Topography.rst","examples/generated/Model_Sounding_Data.rst","examples/generated/NEXRAD_Level3_Radar.rst","examples/generated/Precip_Accumulation-Region_Of_Interest.rst","examples/generated/Regional_Surface_Obs_Plot.rst","examples/generated/Satellite_Imagery.rst","examples/generated/Upper_Air_BUFR_Soundings.rst","examples/generated/Watch_Warning_and_Advisory_Plotting.rst","examples/index.rst","index.rst"],objects:{"awips.DateTimeConverter":[[3,1,1,"","constructTimeRange"],[3,1,1,"","convertToDateTime"]],"awips.RadarCommon":[[10,1,1,"","encode_dep_vals"],[10,1,1,"","encode_radial"],[10,1,1,"","encode_thresh_vals"],[10,1,1,"","get_data_type"],[10,1,1,"","get_datetime_str"],[10,1,1,"","get_hdf5_data"],[10,1,1,"","get_header"]],"awips.ThriftClient":[[11,2,1,"","ThriftClient"],[11,4,1,"","ThriftRequestException"]],"awips.ThriftClient.ThriftClient":[[11,3,1,"","sendRequest"]],"awips.TimeUtil":[[13,1,1,"","determineDrtOffset"],[13,1,1,"","makeTime"]],"awips.dataaccess":[[1,0,0,"-","CombinedTimeQuery"],[2,0,0,"-","DataAccessLayer"],[4,2,1,"","IDataRequest"],[6,0,0,"-","ModelSounding"],[7,0,0,"-","PyData"],[8,0,0,"-","PyGeometryData"],[9,0,0,"-","PyGridData"],[12,0,0,"-","ThriftClientRouter"]],"awips.dataaccess.CombinedTimeQuery":[[1,1,1,"","getAvailableTimes"]],"awips.dataaccess.DataAccessLayer":[[2,1,1,"","changeEDEXHost"],[2,1,1,"","getAvailableLevels"],[2,1,1,"","getAvailableLocationNames"],[2,1,1,"","getAvailableParameters"],[2,1,1,"","getAvailableTimes"],[2,1,1,"","getForecastRun"],[2,1,1,"","getGeometryData"],[2,1,1,"","getGridData"],[2,1,1,"","getIdentifierValues"],[2,1,1,"","getMetarObs"],[2,1,1,"","getOptionalIdentifiers"],[2,1,1,"","getRadarProductIDs"],[2,1,1,"","getRadarProductNames"],[2,1,1,"","getRequiredIdentifiers"],[2,1,1,"","getSupportedDatatypes"],[2,1,1,"","getSynopticObs"],[2,1,1,"","newDataRequest"],[2,1,1,"","setLazyLoadGridLatLon"]],"awips.dataaccess.IDataRequest":[[4,5,1,"","__weakref__"],[4,3,1,"","addIdentifier"],[4,3,1,"","getDatatype"],[4,3,1,"","getEnvelope"],[4,3,1,"","getIdentifiers"],[4,3,1,"","getLevels"],[4,3,1,"","getLocationNames"],[4,3,1,"","setDatatype"],[4,3,1,"","setEnvelope"],[4,3,1,"","setLevels"],[4,3,1,"","setLocationNames"],[4,3,1,"","setParameters"]],"awips.dataaccess.ModelSounding":[[6,1,1,"","changeEDEXHost"],[6,1,1,"","getSounding"]],"awips.dataaccess.PyData":[[7,2,1,"","PyData"]],"awips.dataaccess.PyData.PyData":[[7,3,1,"","getAttribute"],[7,3,1,"","getAttributes"],[7,3,1,"","getDataTime"],[7,3,1,"","getLevel"],[7,3,1,"","getLocationName"]],"awips.dataaccess.PyGeometryData":[[8,2,1,"","PyGeometryData"]],"awips.dataaccess.PyGeometryData.PyGeometryData":[[8,3,1,"","getGeometry"],[8,3,1,"","getNumber"],[8,3,1,"","getParameters"],[8,3,1,"","getString"],[8,3,1,"","getType"],[8,3,1,"","getUnit"]],"awips.dataaccess.PyGridData":[[9,2,1,"","PyGridData"]],"awips.dataaccess.PyGridData.PyGridData":[[9,3,1,"","getLatLonCoords"],[9,3,1,"","getParameter"],[9,3,1,"","getRawData"],[9,3,1,"","getUnit"]],"awips.dataaccess.ThriftClientRouter":[[12,2,1,"","LazyGridLatLon"],[12,2,1,"","ThriftClientRouter"]],"awips.dataaccess.ThriftClientRouter.ThriftClientRouter":[[12,3,1,"","getAvailableLevels"],[12,3,1,"","getAvailableLocationNames"],[12,3,1,"","getAvailableParameters"],[12,3,1,"","getAvailableTimes"],[12,3,1,"","getGeometryData"],[12,3,1,"","getGridData"],[12,3,1,"","getIdentifierValues"],[12,3,1,"","getNotificationFilter"],[12,3,1,"","getOptionalIdentifiers"],[12,3,1,"","getRequiredIdentifiers"],[12,3,1,"","getSupportedDatatypes"],[12,3,1,"","newDataRequest"],[12,3,1,"","setLazyLoadGridLatLon"]],"awips.gfe":[[5,0,0,"-","IFPClient"]],"awips.gfe.IFPClient":[[5,2,1,"","IFPClient"]],"awips.gfe.IFPClient.IFPClient":[[5,3,1,"","commitGrid"],[5,3,1,"","getGridInventory"],[5,3,1,"","getParmList"],[5,3,1,"","getSelectTR"],[5,3,1,"","getSiteID"]],awips:[[3,0,0,"-","DateTimeConverter"],[10,0,0,"-","RadarCommon"],[11,0,0,"-","ThriftClient"],[13,0,0,"-","TimeUtil"]]},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"],"4":["py","exception","Python exception"],"5":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method","4":"py:exception","5":"py:attribute"},terms:{"0":[17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],"00":[19,22,23,25],"000":22,"000000":28,"000508":26,"001012802000048":28,"0027720002":26,"005":19,"008382":26,"00hpa":29,"01":[20,22,29],"0127":26,"017472787":26,"019499999":26,"02":[20,29],"021388888888888888hr":29,"0290003":27,"02905":28,"02hpa":29,"03":[20,29],"03199876199994":28,"033959802":26,"0393701":27,"03hpa":29,"04":[25,29,31],"04hpa":29,"05":[20,26,29],"051":27,"0555557e":26,"06":[20,22,29],"07":[21,29],"071":27,"07hpa":29,"08":[26,29],"08255":26,"082804":26,"088392":26,"0891":28,"08hpa":29,"09":[25,26,29],"092348410":15,"0_100":22,"0_1000":22,"0_10000":22,"0_115_360_359":26,"0_116_116":26,"0_116_360_0":26,"0_120":22,"0_12000":22,"0_13_13":26,"0_150":22,"0_1500":22,"0_180":22,"0_200":22,"0_2000":22,"0_230_360_0":26,"0_250":22,"0_2500":22,"0_260":22,"0_265":22,"0_270":22,"0_275":22,"0_280":22,"0_285":22,"0_290":22,"0_295":22,"0_30":22,"0_300":22,"0_3000":22,"0_305":22,"0_310":22,"0_315":22,"0_320":22,"0_325":22,"0_330":22,"0_335":22,"0_340":22,"0_345":22,"0_346_360_0":26,"0_350":22,"0_3500":22,"0_359":26,"0_400":22,"0_4000":22,"0_40000":22,"0_450":22,"0_4500":22,"0_460_360_0":26,"0_464_464":26,"0_500":22,"0_5000":22,"0_550":22,"0_5500":22,"0_60":22,"0_600":22,"0_6000":22,"0_609":22,"0_610":22,"0_650":22,"0_700":22,"0_7000":22,"0_750":22,"0_800":22,"0_8000":22,"0_850":22,"0_90":22,"0_900":22,"0_9000":22,"0_920_360_0":26,"0_950":22,"0bl":22,"0c":19,"0co":23,"0f":[23,28],"0fhag":[15,18,19,22],"0k":22,"0ke":22,"0lyrmb":22,"0m":29,"0mb":[19,22],"0pv":22,"0sfc":[22,27],"0tilt":22,"0trop":22,"0x11127bfd0":18,"0x11568f6d0":24,"0x115a20370":24,"0x11b971da0":27,"0x11dcfedd8":28,"1":[0,15,19,21,23,25,26,27,28,29,30],"10":[15,17,19,20,23,26,27,28,29,30,31],"100":[19,22,25,30],"1000":[19,22,23,25,30],"10000":22,"1013":29,"103":29,"104":[19,29],"1042":29,"1058":24,"1070":29,"10800":22,"108000":22,"10hpa":29,"11":[26,27,29],"110":29,"1100":29,"112":25,"115":26,"1152x1008":29,"116":26,"116167":29,"117":29,"118":23,"118800":22,"11hpa":29,"12":[17,19,22,24,25,27,28,29,30,31],"120":[22,27],"1205":24,"12192":26,"125":[27,29],"1250":22,"127":[27,31],"129600":22,"12hpa":29,"13":[26,27,29],"130":17,"133":29,"134":26,"135":26,"138":26,"1382263":20,"139":27,"13hpa":29,"14":[17,19,20,22,25,26,27,29,31],"140":27,"1400":24,"140400":22,"141":26,"142":29,"14hpa":29,"15":[17,19,21,25,27,29,30],"150":22,"1500":22,"1502":31,"151":29,"151200":22,"152":28,"1524":22,"1583666":20,"159":26,"1598":18,"15hpa":29,"16":[15,17,18,21,22,25,26,27,28,31],"160":29,"161":26,"162000":22,"163":26,"165":26,"166":26,"1660":17,"1688":24,"169":26,"1693":24,"1694":24,"17":[25,26,27,29],"170":[26,29],"1701":24,"1703":24,"1704":17,"1706":24,"171":26,"1716":24,"172":26,"172800":22,"173":26,"1730":24,"174":26,"1741":24,"1746":24,"175":26,"1753":24,"176":26,"1767":24,"177":26,"1781":24,"1790004":27,"17hpa":29,"18":[19,21,26,27,28,29],"180":[20,29],"1828":22,"183600":22,"1875":27,"1890006":27,"18hpa":29,"19":[19,22,26,29],"190":[26,29],"194400":22,"19hpa":29,"19um":29,"1f":[19,23,28],"1mb":19,"1v4":25,"2":[0,15,19,23,25,26,27,28,29,30],"20":[19,23,25,26,27,29,30,31],"200":[22,29],"2000":[22,31],"2016":16,"2018":[19,26,29],"2020":25,"2021":[20,22],"205200":22,"208":24,"20b2aa":24,"20km":22,"20um":29,"21":27,"212":29,"21600":22,"216000":22,"22":[19,21,24,27],"223":29,"225":24,"226800":22,"22hpa":29,"23":[23,26,29],"230":26,"235":29,"237600":22,"23hpa":29,"24":[27,28,31],"243":25,"247":29,"24799":29,"248400":22,"24hpa":29,"25":[17,22,27],"250":22,"2500":22,"255":[22,23],"257":22,"259":29,"259200":22,"25um":29,"26":29,"260":[22,28],"263":25,"265":22,"26hpa":29,"27":[26,27],"270":22,"270000":22,"272":29,"273":[19,25,30],"2743":22,"274543999":15,"275":22,"27hpa":29,"28":[20,27,28,29],"280":22,"280511999":15,"280800":22,"285":22,"285491999":15,"286":29,"29":[25,29],"290":22,"291600":22,"295":[22,27],"2960005":27,"2fhag":[16,22],"3":[6,19,25,26,27,28,29,30],"30":[22,27,29,30],"300":[22,27,29],"3000":[20,22],"302400":22,"3048":22,"305":22,"3071667e":26,"30hpa":29,"30um":29,"31":[26,28,29],"310":22,"3125":27,"314":29,"315":22,"31hpa":29,"32":[17,19,26,27,28,29],"320":22,"32400":22,"324000":22,"325":22,"328":29,"32hpa":29,"33":[27,28],"330":22,"334":27,"335":22,"339":27,"340":22,"343":29,"345":22,"345600":22,"346":26,"3468":28,"34hpa":29,"34um":29,"35":[17,22,23,28,29],"350":22,"3500":22,"35785830":20,"358":29,"35hpa":29,"35um":29,"36":27,"360":26,"3600":[27,29],"3626751":20,"3657":22,"367200":22,"369":22,"36shrmi":22,"37":26,"374":29,"375":27,"37hpa":29,"388800":22,"38hpa":29,"38um":29,"39":[19,27,29],"390":29,"3j2":25,"3tilt":22,"4":[19,23,25,27,28,29],"40":[19,22,25],"400":22,"4000":22,"407":29,"40km":19,"41":26,"410400":22,"41999816894531":25,"41hpa":29,"42":[26,27,29],"422266":29,"424":29,"43":[25,29],"43200":22,"432000":22,"4328":24,"432x288":20,"43hpa":29,"441":29,"4420482":27,"44848":28,"44hpa":29,"45":[17,19,22,27,29],"450":22,"4500":22,"45227":29,"453600":22,"4572":22,"4588674":20,"459":29,"45hpa":29,"46":15,"460":26,"464":26,"46hpa":29,"47":29,"47462":29,"475200":22,"477":29,"47hpa":29,"47um":[20,29],"48":27,"49":31,"496":29,"496800":22,"4bl":25,"4bq":25,"4hv":25,"4mb":19,"4om":25,"4tilt":22,"5":[0,21,25,26,27,28,29],"50":[15,19,22,23,24,26,27],"500":[22,29],"5000":[20,22,24],"5000x4000":20,"50934":28,"50dbzz":22,"50hpa":29,"50m":[17,18,20,21,24,26,27,29,31],"50um":29,"51":[20,26,27,29],"515":29,"518400":22,"51hpa":29,"52":27,"521051616000022":28,"525":22,"5290003":27,"52hpa":29,"535":29,"5364203":27,"5399999e":26,"53hpa":29,"54":27,"54000":22,"540000":22,"54hpa":29,"55":[17,22],"550":22,"5500":22,"555":29,"56":[20,26,29],"561600":22,"5625":27,"57":[26,27],"575":[22,29],"5775646e":26,"57hpa":29,"58":[24,26,29],"583200":22,"58hpa":29,"59":23,"596":29,"59hpa":29,"5af":25,"5ag":25,"5pv":22,"5sz":25,"5tilt":22,"6":[19,23,25,27,28,29],"60":[22,25,27,28,29,30],"600":22,"6000":22,"604800":22,"609":22,"6096":22,"610":22,"61595":29,"617":29,"61um":29,"623":24,"625":[22,27],"626":27,"626400":22,"628002":27,"62hpa":29,"63":27,"63429260299995":28,"6356752":20,"6378137":20,"639":29,"63hpa":29,"64":[25,31],"64800":22,"648000":22,"64um":[20,29],"65":[15,17,25,27,31],"650":22,"65000152587891":25,"65155":28,"652773000":15,"65293884277344":15,"656933000":15,"657455":29,"65hpa":29,"66":[27,29],"660741000":15,"661":29,"66553":28,"669600":22,"67":[19,25],"670002":27,"67402":28,"675":22,"67hpa":29,"683":29,"6875":27,"68hpa":29,"69":27,"690":26,"691200":22,"69hpa":29,"6fhag":22,"6mb":19,"6ro":25,"7":[18,19,20,25,26,27,29],"70":17,"700":22,"7000":22,"706":29,"70851":29,"70hpa":29,"71":29,"712800":22,"718":27,"71hpa":29,"72":27,"725":22,"72562":30,"729":29,"72hpa":29,"73":23,"734400":22,"74":[18,27],"75":[17,20,27],"750":22,"75201":28,"753":29,"75600":22,"756000":22,"757":24,"758":24,"759":24,"760":24,"761":24,"762":24,"7620":22,"765":24,"766":24,"768":24,"769":24,"77":[27,29],"775":[22,24],"777":29,"777600":22,"778":24,"78":[26,27,28],"782322971":15,"78hpa":29,"79":27,"79354":28,"797777777777778hr":29,"799200":22,"79hpa":29,"7mb":19,"7tilt":22,"8":[17,18,23,25,27,28,29],"80":[18,24,26,28,29],"800":22,"8000":22,"802":29,"81":[26,27],"812":27,"82":[27,28],"820800":22,"825":22,"82676":28,"8269997":27,"827":29,"83":[28,29],"834518":26,"836":19,"837":19,"84":27,"842400":22,"848":19,"85":[17,27,31],"850":22,"852":29,"853":27,"85hpa":29,"86":28,"86400":22,"864000":22,"86989b":24,"87":[19,27,28,29],"875":[22,27],"878":29,"87hpa":29,"87um":[20,29],"88hpa":29,"89":[27,28,29],"89899":28,"89hpa":29,"8fhag":22,"8tilt":22,"8v7":25,"9":[18,25,27,29],"90":[15,21,22],"900":22,"9000":22,"904":29,"90um":29,"9144":22,"92":[15,28,29],"920":26,"925":22,"92hpa":29,"931":29,"93574":28,"94":[25,26],"94384":25,"948581075":15,"94915580749512":15,"95":23,"950":22,"958":29,"9581":11,"95hpa":29,"95um":29,"96":29,"96hpa":29,"97200":22,"975":22,"97hpa":29,"98":29,"986":29,"98hpa":29,"99":26,"992865960":15,"9999":[17,23,27,28,30],"99hpa":29,"9b6":25,"9tilt":22,"abstract":[4,16],"boolean":[2,10,31],"break":16,"case":[16,18,20,22,24,25,30],"class":[4,5,7,8,9,11,12,16,19,22,23,26],"default":[0,6,16,20,31],"do":[0,16,17,22,31],"enum":16,"export":0,"final":[6,17,18,20,31],"float":[3,8,16,17,19,20,23,28],"function":[0,16,22,23,28],"import":[16,19,21,23,25,26,27,28,29,30],"int":[3,8,16,17,23,24,27,28],"long":[3,8,16],"new":[2,17,18,20,24,25,27,28,31,33],"null":16,"public":[0,16,17,20,24,31],"return":[2,3,4,6,7,8,9,10,15,16,18,19,20,22,23,24,25,26,27,28,29,30,31],"short":20,"switch":[19,31],"throw":[2,16],"true":[2,15,18,19,22,23,24,25,26,27,28,29,31],"try":[17,22,23,25,28],"void":16,"while":[16,28,30,31],A:[0,2,3,4,6,16,19,25,27,31],As:[0,16],At:0,By:[16,17,20,31],For:[0,16,17,20,22,24,30],IS:19,If:[4,6,16,18,19,20,22,23,31,33],In:[0,16,17,18,24,31,33],Into:22,It:[2,16,31],No:[16,25,26],Not:[4,16,22],Of:32,One:26,The:[0,16,17,18,19,20,21,22,24,25,30,31,33],Then:[20,31],There:[16,19],These:[0,2,31],To:[16,17,20],With:[17,20,24,31],_:19,__:31,__weakref__:4,_datadict:19,_pcolorarg:18,_soundingcub:6,abbrevi:[4,8,9],abl:[16,17,25],about:[16,22],abov:[16,18,19,22,24,31],abq:23,abstractdatapluginfactori:16,abstractgeometrydatabasefactori:16,abstractgeometrytimeagnosticdatabasefactori:16,abstractgriddatapluginfactori:16,acar:[16,22],access:[0,2,6,16,18,22,24,31],account:28,accum:26,accumul:32,accur:31,act:6,action:16,activ:33,actp:29,actual:[2,16,20,31],acv:23,ad:[16,18,28,31],add:[4,16,17,20,23,30,31],add_barb:[23,28],add_featur:[20,23,24,28,29,31],add_geometri:27,add_grid:[19,25,30],add_subplot:23,add_valu:[23,28],addidentifi:[4,15,16,20,21,24,25,28,29],addit:[0,16],addition:20,adjust:31,adm:25,admin_0_boundary_lines_land:[24,31],admin_1_states_provinces_lin:[24,29,31],adp:29,advis_sig:31,advisori:32,advisory_shap:31,afa:25,affect:[2,17],after:[0,16,20,31],again:24,ageow:22,ageowm:22,agnost:[2,16],ago:29,agr:25,ahn:25,aia:25,aid:21,aih:25,air:[0,22,32],air_pressure_at_sea_level:[23,28],air_temperatur:[23,28],airep:[16,22],airmet:16,airport:16,ajo:25,al:28,alabama:28,alarm:0,alert:[0,16],algorithm:26,all:[0,2,4,6,16,17,19,20,22,24,30,31,33],allow:[0,2,16,17,19,20,24,31],along:[18,22,24,31],alpha:24,alphabet:31,alr:22,alreadi:[23,33],also:[0,3,15,16],alter:16,although:22,alwai:16,america:23,amount:[16,29],an:[0,2,4,7,16,17,18,20,21,22,24,25,29,30,31,33],analysi:[0,33],analyz:22,angl:16,ani:[0,2,16,19,24,31],anj:25,annot:[20,24],anoth:[16,20,22,24],antarct:29,anyth:16,aod:29,apach:0,api:16,app:16,appear:[18,24],append:[19,21,23,24,25,28,30,31],appli:[0,16,20],applic:[0,24],approach:0,appropri:[0,31],appt:22,apx:25,aqq:25,ar:[0,2,4,16,17,18,19,20,21,22,24,25,28,29,30,31,33],arang:20,architectur:16,arctic:29,area:[24,27,29],areal:31,arg:[2,3,4,6,7,8,10,16,18],argsort:30,argument:3,around:[16,17,18],arrai:[2,9,15,16,17,18,19,22,23,24,25,26,28,30,31],asid:24,assign:30,assist:0,associ:[0,7,9,16,31],assum:25,ath:25,atl1:25,atl2:25,atl3:25,atl4:25,atl:23,atlh:25,atmospher:22,attach:[16,23,28],attempt:16,attent:19,attribut:[7,16,21,24],automat:16,autosp:22,av:22,avail:[0,2,6,16,18,19,20,21,24,31],avail_param:23,available_loc:26,availablelevel:[15,19,26],availableloc:30,availableparm:[2,21,26],availableproduct:[15,23,28,29],availablesector:[15,29],avoid:16,awai:18,awh:25,awip:[1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],awips2:[0,25],awr:25,ax2:18,ax:[17,18,19,20,21,23,24,25,26,27,28,29,30,31],ax_hod:[19,25,30],ax_synop:28,axes_grid1:[19,25,30],axi:[18,31],axvlin:[19,25,30],azdat:10,azval:10,b:[20,22,25],bab:25,back:16,backend:0,background:18,baltimor:31,band:20,base:[0,6,16,17,20,24,25,26,29,31],baselin:16,basi:6,basin:16,bbox:[17,18,19,24,26,27,28,29,31],bbox_inch:20,bbox_to_anchor:31,bde:23,bdept06:22,bdg:[23,25],bdp:25,bean:16,becaus:[16,20,22,24,25,28,30],becom:[16,24],been:[16,20],befor:[16,22,31],begin:23,beginrang:[17,23,28,31],behavior:16,being:[0,4,16,31],below:[16,17,20,22,24,31,33],best:16,better:2,between:[0,16,18,19,20,31],bfl:25,bgtl:25,bh1:25,bh2:25,bh3:25,bh4:25,bh5:25,bhk:25,bi:23,bid:25,bigger:31,bil:23,bin:16,binlightn:[16,21,22],binoffset:16,bir:25,bit:22,bkn:[23,28],bl:[22,25],black:[24,27,30,31],blank:31,bli:22,blizzard:31,blkmag:22,blkshr:22,blob:25,block:24,blu:25,blue:[23,24,28],bmx:25,bna:25,bo:23,board:21,bod:25,boi:23,border:23,both:[16,18,21,24,26],bottom:[20,31],bou:24,boulder:24,bound:[16,17,18,23,24,28,31],boundari:[18,20,22,28],box:[16,17,18,27,31],bra:25,brn:22,brnehii:22,brnmag:22,brnshr:22,brnvec:22,bro:23,broken:0,browser:33,btl:25,buffer:[20,24,28],bufr:[22,25,32],bufrmosavn:22,bufrmoseta:22,bufrmosgf:22,bufrmoshpc:22,bufrmoslamp:22,bufrmosmrf:22,bufrua:[16,22,30],bui:23,build:[3,16,30],bundl:16,burnt:24,bvr:25,bytebufferwrapp:16,bz:31,c01:25,c02:25,c03:25,c04:25,c06:25,c07:25,c08:25,c09:25,c10:25,c11:25,c12:25,c13:25,c14:25,c17:25,c18:25,c19:25,c20:25,c21:25,c22:25,c23:25,c24:25,c25:25,c27:25,c28:25,c30:25,c31:25,c32:25,c33:25,c34:25,c35:25,c36:25,c7h:25,c:[17,18,19,25,30,33],cai:25,calc:[23,25,28,30],calcul:[16,18,27,30],call:[0,16,18,20,24,31,33],caller:16,can:[0,3,16,17,18,20,22,24,25,28,29,31,33],capabl:16,cape:[22,29],capestk:22,capetolvl:22,car:23,carolina:28,cartopi:[17,18,20,21,22,23,24,26,27,28,29,31],cascaded_union:24,categori:[17,23,24,25,26,28,29,31],cave:[16,17,33],cbar2:18,cbar:[18,24,26,27,29],cbe:25,cbn:25,cc5000:24,ccape:22,ccfp:16,ccin:22,ccr:[17,18,20,21,23,24,26,27,28,29,31],cd:33,cell:[16,18,24,31],celsiu:17,center:[0,18,31,33],cento:0,central_latitud:[23,28],central_longitud:[20,21,23,28],certain:[2,16],cfeat:[20,21,29],cfeatur:[23,28,31],cfrzr3hr:22,cfrzr6hr:22,cfrzr:22,ch1:20,ch2:20,ch3:20,ch:[20,23,29],chang:[2,6,16,23,24],changeedexhost:[2,6,15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],channel:20,characterist:24,chart:30,che:25,check:[20,31],choos:16,cicep3hr:22,cicep6hr:22,cicep:22,cin:22,cira:32,citylist:24,citynam:24,ckn:25,cld:25,cldcvr:25,cldsnow:20,cle:[23,25],clean:[16,19],click:0,client:[0,2,12],climat:22,clip:20,clip_on:[23,28],cln:25,clone:33,cloud:[15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],cloud_coverag:[23,28],clt:23,cmap:[18,20,24,26,27,29],cmc:[19,22],coastlin:[17,18,20,21,23,24,26,27,29,31],code:[0,16,20,22,23,24,26,28],coe:23,coeff:26,col1:25,col2:25,col3:25,col4:25,collect:21,colleg:31,color:[19,20,22,23,24,25,28,30,31,32],colorado:24,colorbar:[18,24,26,27,29],column:[24,29,31],com:[0,16,17,18,23,25,28,31,33],combin:[2,16,20,24],combinedtimequeri:14,come:[16,17,20,24,31],comma:31,command:0,commerci:0,commitgrid:5,common:[0,16,17,18,23,24,28,31],common_obs_spati:22,commun:[0,2,6],compar:[18,31],comparison:31,compat:[0,16],complet:16,compon:[0,19,23,25,28],component_rang:[19,25,30],compos:0,composit:[0,20,26,29],compris:0,concaten:[25,30],concept:16,condit:2,conduct:0,conf:0,configur:0,confus:20,connect:[2,6],connnect:17,consid:[0,16],consider:2,consist:[0,16,24],constant:[18,25,30],constrain:4,construct:[25,31],constructor:16,constructtimerang:3,contain:[0,16],content:16,context:24,continent:[17,18],continu:[16,26,29,30],contourf:24,control:0,contrust:[15,29],conu:[17,20,24,27,29],conus_envelop:27,conveni:[2,16],convers:3,convert:[3,16,18,19,20,23,28,31],convert_temperatur:18,converttodatetim:3,coolwarm:29,coord:20,coordin:[0,9,16,18],copi:17,corf:22,corff:22,corffm:22,corfm:22,correct:[23,28,31],correl:[16,26,31],correspond:[16,31],cosd:16,cot:[0,25],could:[2,16,20],count:26,counti:[16,24,28],cover:[22,25],cp3hr:22,cp6hr:22,cp:22,cpr:[22,23],cprd:22,cqv:25,cr:[17,18,20,21,23,24,26,27,28,29,31],crain3hr:22,crain6hr:22,crain:22,creat:[0,2,16,17,18,19,20,21,23,25,27,28,30,33],creatingent:[15,20,29],critt1:22,crl:25,crr:25,crswkt:12,crw:23,cs2:18,cs:[18,24,26,27,29],csm:29,csnow3hr:22,csnow6hr:22,csnow:22,cth:29,ctot:22,ctt:29,cty:25,cultur:[24,29,31],cumnrm:22,cumshr:22,current:[16,31],curu:22,custom:16,custom_layout:[23,28],cv:25,cvm:25,cweu:25,cwfn:25,cwkx:25,cwlb:25,cwlo:25,cwlt:25,cwlw:25,cwmw:25,cwo:25,cwph:25,cwqg:25,cwsa:25,cwse:25,cwzb:25,cwzc:25,cwzv:25,cyah:25,cyan:20,cyaw:25,cybk:25,cybu:25,cycb:25,cycg:25,cycl:[2,15,17,18,19,20,22,25,26,27,31],cycx:25,cyda:25,cyeg:25,cyev:25,cyf:25,cyfb:25,cyfo:25,cygq:25,cyhm:25,cyhz:25,cyjt:25,cylh:25,cylj:25,cymd:25,cymo:25,cymt:25,cymx:25,cyoc:25,cyow:25,cypa:25,cype:25,cypl:25,cypq:25,cyqa:25,cyqd:25,cyqg:25,cyqh:25,cyqi:25,cyqk:25,cyqq:25,cyqr:25,cyqt:25,cyqx:25,cyrb:25,cysi:25,cysm:25,cyt:25,cyth:25,cytl:25,cyul:25,cyux:25,cyvo:25,cyvp:25,cyvq:25,cyvr:25,cyvv:25,cywa:25,cywg:25,cywo:25,cyx:25,cyxc:25,cyxh:25,cyxi:25,cyxu:25,cyxx:25,cyxz:25,cyy:25,cyyb:25,cyyc:25,cyyj:25,cyyq:25,cyyr:25,cyyt:25,cyyz:25,cyz:25,cyzf:25,cyzt:25,cyzv:25,d2d:0,d2dgriddata:16,d:[0,15,16,17,19,23,25,28,29,31],daemon:0,dai:[21,29],dal:2,darkgreen:[17,23,28],darkr:[23,28],data:[0,2,4,6,7,8,9,10,21,23,24,26,27,28,29,30],data_arr:23,dataaccess:[1,2,4,6,7,8,9,12,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],dataaccesslay:[4,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],dataaccessregistri:16,databas:[0,16,24,28],datadestin:16,datafactoryregistri:16,dataplugin:[16,18],datarecord:7,dataset:[0,22,24,33],datasetid:[6,16],datastorag:16,datatim:[2,6,16,20,22,30],datatyp:[2,4,12,18,20,21,22,23,24,28,29],datauri:29,date:3,datetim:[3,10,17,19,20,21,23,25,28,29,31],datetimeconvert:14,db:16,dbm:0,dbrdust:20,dbz:26,dcape:22,dd:22,debra:20,decid:31,decim:31,decod:[0,16],decreas:18,def:[18,20,23,24,26,27,28,29,31],defaultdatarequest:[16,18],defaultgeometryrequest:16,defaultgridrequest:16,defin:[4,22,24,29,31],definit:[16,24,31],defv:22,deg2rad:30,deg:25,degc:[19,23,25,28,30],degf:[17,23,28,30],degre:[17,18,23,28],del2gh:22,deleg:16,den:25,depend:[2,16,20,22,24],depval:10,deriv:[0,16,26,29],describ:[0,20,31],descript:[10,31],design:[0,20],desir:[16,20],desktop:0,destin:16,destunit:18,detail:[16,22,31],detect:21,determin:[0,16,19,27],determinedrtoffset:13,develop:[0,21,33],dew_point_temperatur:[23,28],dewpoint:[19,23,28,30],df:22,dfw:23,dhr:29,dict:[17,18,21,23,24,26,27,28,29,31],dictionari:[2,4,6,23,28,31],diff:26,differ:[0,16,17,18,22,24,31],digit:[15,26],dimens:20,dimension:0,dir:25,direc:30,direct:[23,28],directli:[0,17,20,24],directori:20,discharg:21,disclosur:24,disk:20,displai:[0,16,31,33],display:0,distinct:16,distinguish:17,distirubt:25,distribut:0,divers:16,divf:22,divfn:22,dlh:23,dman:30,doc:31,document:[16,22],doe:[16,25],domain:[0,24],don:[16,20],done:[16,20,31],dot:[19,30],doubl:8,dov:25,down:17,download:[0,24],dp:22,dpd:22,dpg:25,dpi:[20,23],dpt:[19,22,28],draw:[17,20,25,27,30],draw_advisori:31,draw_label:[18,24,26,28,29,31],draw_stat:31,draw_warn:31,draw_watch:31,drawn:31,dream:16,drt:23,dry_laps:[25,30],dsc:25,dsd:25,dsm:23,dstack:20,dstype:[17,18,23,28,31],dt:22,dtx:25,dtype:[17,19,23,28],dupag:31,dure:[2,18,31],dust:20,dvadv:22,dvl:29,dvn:25,dwpc:25,dy:25,dynamicseri:[3,17,18,23,28,31],dz:22,e28:25,e74:25,e7e7e7:28,e:[0,16,23,25,28,29],each:[2,16,17,20,24,25,28,31],earlier:31,earliest:31,eas:16,easi:31,easier:16,easiest:[18,31],easili:[24,31],east:[20,29],east_6km:22,east_pr_6km:22,eastward_wind:[23,28],eat:25,eax:25,echo:26,econu:[20,29],edex:[2,6,15,16,18,19,21,23,25,26,27,28,29,30,33],edex_camel:0,edex_ldm:0,edex_postgr:0,edex_url:22,edexserv:[17,21,23,28],edg:18,edgecolor:[20,24,27,28,31],editor:0,edu:[0,15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33],edw:25,eet:29,efd:29,effect:16,effict:33,efl:25,ehi01:22,ehi:22,ehii:22,either:[0,16,22,33],element:[6,9,22,23],elev:[24,30],eli:23,elif:[17,19,20,23,28,31],ellips:20,elp:23,els:[17,19,20,22,23,26,27,28,31],email:33,emeso:29,emit:21,emp:25,emploi:0,empti:19,emsp:22,enabl:[16,24],encode_dep_v:10,encode_radi:10,encode_thresh_v:10,encourag:0,end:[0,17,20,23,24,25,28,31],endrang:[17,23,28,31],enhanc:[0,26],enl:25,ensur:0,entir:[0,24],entiti:[0,15,20],entitl:0,entri:31,enumer:[24,27,29],env:[4,16,18,33],envelop:[2,4,12,16,17,18,19,24,27,28],environ:[0,2,33],environment:[0,21],eph:23,ept:22,epta:22,eptc:22,eptgrd:22,eptgrdm:22,epv:22,epvg:22,epvt1:22,epvt2:22,error:[0,16,22],esp2:22,esp:22,essenti:16,establish:[17,20,24,31],estc:25,estof:22,eta:25,etc:[0,16,19],etss:22,event:21,everi:[16,17],everyth:16,ex:31,exact:20,exactli:20,exampl:[0,2,15,16,18,20,22,24,25,26,29,30,31],except:[11,16,22,23,25,28],exchang:0,execut:0,exercis:[23,28],exist:[2,16,17,20,24],exit:25,exp:25,expand:16,expect:16,experienc:33,explan:31,explicit:18,extend:[16,24,26,30],extent:[20,21,24,29],f:[17,18,22,25,30,33],fa:31,facecolor:[21,24,27,28,29,31],facilit:0,factori:4,factorymethod:16,fahreheit:17,fall:[24,29],fals:[1,2,18,20,24,26,28,29,31],familiar:16,far:23,farenheit:18,faster:16,fat:23,fc:25,fcst:[22,27],fcsthour:25,fcsthr:27,fcstrun:[15,18,19,22,25,27],fdc:29,fdr:25,featur:[20,21,23,24,28,29,31],feature_artist:[24,27,28],featureartist:[24,27,28],feed:0,feel:[20,33],felt:16,few:[16,20,22,23,28,31],ff:22,ffc:25,ffg:22,ffmp:16,fgen:22,fhag:19,fhu:25,field:[16,24],fig2:18,fig:[17,18,20,21,23,24,26,27,28,29,31],fig_synop:28,figh:20,figsiz:[17,18,19,21,23,24,25,26,27,28,29,30,31],figur:[17,18,19,20,23,25,29,30,31],figw:20,file:[0,10,16,20],filter:[2,22,28],filterwarn:[17,23,25,26,28],find:[2,22,31],fine:16,finish:0,fire:21,first:[9,16,17,20,21,24,29,31],first_tim:31,fix:[18,22],fl:28,flag:30,flash:21,flat:26,flatten:26,flg:[23,25],floatarraywrapp:16,flood:[21,31],florida:28,flow:0,flown:21,flp:25,fmt:[23,28],fnd:22,fnmoc:22,fnvec:22,fog:29,folder:[16,20],follow:[0,16,20,25,30],font:31,fontsiz:[17,23,28,31],footnot:20,footnotestr:20,forc:33,forcast:22,forecast:[0,2,6,18,21,22,29,32,33],forecasthr:2,forecastmodel:25,forg:33,form:0,format:[0,21,22,23],foss:0,foss_cots_licens:0,found:[16,17,19,22,26,28],fpk:25,fraction:[20,23,28],frame:31,framework:[2,6],free:[0,16,20,33],frequenc:21,frequent:16,fri:25,from:[0,2,3,16,17,18,19,20,21,22,23,26,27,28,29,30,31,33],fromtimestamp:23,front:0,fsd:[22,23],fsi:25,fsvec:22,ftr:25,full:[2,15,16,22,24,29,30,31],fulli:20,fundament:0,further:0,furthermor:16,futur:16,fvec:22,fwd:25,fwr:22,fzra1:22,fzra2:22,g001:25,g003:25,g004:25,g005:25,g007:25,g009:25,g:[16,19,20,25,30],ga:28,gage:16,gamma:22,gather:[20,31],gca:20,gdp:25,gdv:25,gempak:[17,25],gener:[2,16,27],geoax:18,geocolor:20,geocolr:20,geodatarecord:8,geograph:[22,24,33],geom:[15,25,28,31],geom_typ:31,geometri:[2,4,8,16,17,19,24,27,28],geometrydata:31,geomfield:[24,28],georgia:28,geospati:16,geostationari:[20,32],geovort:22,geow:22,geowm:22,get:[2,4,7,8,9,10,16,17,18,19,23,24,28,29,30],get_cloud_cov:[23,28],get_cmap:[18,24,26,27],get_data_typ:10,get_datetime_str:10,get_dpi:20,get_hdf5_data:[10,15],get_head:10,getattribut:[7,16,21],getavailablelevel:[2,12,15,19,22,26],getavailablelocationnam:[2,12,15,16,20,22,25,26,29,30],getavailableparamet:[2,12,15,21,22,23,26,28,29,31],getavailabletim:[1,2,12,15,16,18,19,20,21,22,25,26,27,29,30],getdata:16,getdatatim:[7,15,16,17,18,20,21,22,23,25,26,27,28,29,30,31],getdatatyp:[4,16],getenvelop:[4,16],getfcsttim:[22,25,27],getforecastrun:[2,15,18,19,22,25,27],getgeometri:[2,8,15,16,21,24,25,28,31],getgeometrydata:[2,12,15,16,17,21,22,23,24,25,28,30,31],getgriddata:[2,12,15,16,18,20,22,24,26,27,29],getgridgeometri:16,getgridinventori:5,getidentifi:[4,16],getidentifiervalu:[2,12,15,20,21,29],getlatcoord:16,getlatloncoord:[9,15,18,22,24,26,27,29],getlevel:[4,7,16,18,26],getlocationnam:[4,7,15,16,18,22,25,26,27],getloncoord:16,getmetarob:[2,17,28],getnotificationfilt:12,getnumb:[8,16,23,24,25,28,30],getoptionalidentifi:[2,12,20,29],getparamet:[8,9,16,18,22,23,25,26,29,30],getparmlist:5,getradarproductid:[2,26],getradarproductnam:[2,26],getrawdata:[9,15,16,18,20,22,24,26,27,29],getreftim:[15,18,19,20,21,22,25,26,27,29,30,31],getrequiredidentifi:[2,12],getselecttr:5,getsiteid:5,getsound:[6,19],getstoragerequest:16,getstr:[8,16,23,24,28,30,31],getsupporteddatatyp:[2,12,22],getsynopticob:[2,28],gettyp:[8,16],getunit:[8,9,16,22,26,30],getvalidperiod:[15,25],gf:[22,25],gfe:[0,4,5,16,22],gfeeditarea:22,gfegriddata:16,gfs1p0:22,gfs20:[19,22],gfs40:16,gh:22,ghxsm2:22,ghxsm:22,gi:24,git:33,github:[0,25,33],give:31,given:[3,6,22],gjt:23,gl:[18,24,26,28,29,31],gld:23,glm:15,glm_point:21,glmev:21,glmfl:21,glmgr:[15,21],global:22,globe:20,glry:25,gm:29,gmt:[21,25],gmx1:25,gnb:25,gnc:25,go:[16,18,22],goal:16,goe:32,goes16:20,good:24,gov:25,grab:[20,23,28],grai:20,graphic:0,grb:23,greatest:27,green:17,grf:25,grib:[0,16,18],grid:[0,2,4,6,9,16,19,20,24,26,27,28,29,31,32],grid_cycl:22,grid_data:22,grid_fcstrun:22,grid_level:22,grid_loc:22,grid_param:22,grid_request:22,grid_respons:22,grid_tim:22,griddata:24,griddatafactori:16,griddatarecord:9,gridgeometry2d:16,gridlin:[18,20,21,24,26,27,28,29,31],ground:[18,21,22],group:[21,24,31],gtb:25,gtp:25,guarante:2,guid:20,gv:25,gvl:25,gvv:22,gyx:25,h02:25,h:[17,19,20,23,25,28,29,30,31],ha:[0,16,20,24,31],hag:22,hai:25,hailstorm:21,hand:[23,28],handl:[0,16,24,31],handler:[16,25],hasn:20,hat:0,have:[16,22,23,28,31,33],hazard:16,hdfgroup:0,hdln:31,header:0,headerformat:10,height:[16,18,20,21,22,24,29,30],heli:22,helic:22,help:[22,31],helper:16,hemispher:29,here:[17,18,20,22,23,24,25,28,31],hfr:22,hgr:25,hh:22,hhc:29,hi1:22,hi3:22,hi4:22,hi:22,hidden:0,hide:16,hidx:22,hierarch:0,hierarchi:16,high:[0,21],highli:0,hint:2,hln:23,hmn:25,hodograph:[19,30],hom:25,hoo:25,hook:16,horizonat:31,horizont:[18,24,26,27,29],host:[2,5,6,11,12,30],hot:23,hou:23,hour:[6,23,26,29,31],hourdiff:29,how:[17,18,22,31,33],howev:[16,31],hpcguid:22,hpcqpfndfd:22,hr:[27,29],hrrr:[22,27],hsi:25,hsv:23,htman:30,html:31,http:[0,25,31,33],huge:16,hurrican:21,hy:25,hybrid:[15,26],hydro:16,hydrometeor:26,hyr:25,i:[0,16,22,24,27,28,29],icao:16,icc:25,icon:0,ict:23,id:[16,20,23,24,29,30],ida:23,idata:16,idatafactori:16,idatarequest:[2,14,16,20,31],idatastor:16,idd:0,ideal:16,identifi:[2,4,16,18,20,23,24,29],identifierkei:[2,12],idetifi:2,idra:[10,15],ifpclient:14,igeometrydata:[2,16],igeometrydatafactori:16,igeometryfactori:16,igeometryrequest:16,igm:25,ignor:[2,16,17,23,25,26,28],igriddata:[2,16],igriddatafactori:16,igridfactori:16,igridrequest:16,ihf:16,ii:27,il:25,iln:25,ilx:25,imag:[0,15,18,24,29,31],imageri:[0,20,22,27,32],immedi:2,impact:21,implement:[0,2],implent:16,improv:16,imshow:20,imt:25,inc:[19,27],inch:[20,23,27,28],includ:[0,3,16,17,21,25,33],inclus:30,incompatiblerequestexcept:16,incorrectli:18,increas:[18,31],increment:[16,19,25,30],ind:23,independ:0,index:[14,29],indic:[2,16],individu:[16,20],info:16,inform:[0,2,20,21,22,24,31],ingest:[0,16],ingestgrib:0,init:0,initi:[2,30],ink:25,inlin:[19,21,23,25,26,27,28,29,30],inloc:[24,28],input:18,ins:16,inset_ax:[19,25,30],inset_loc:[19,25,30],insid:[16,24],inst:26,instal:0,instanc:[2,6,20,22],instanti:16,instead:16,instruct:33,instrument:21,integ:[23,26,28],intens:[15,21],inter:0,interact:16,interest:[22,32,33],interfac:[0,31],intern:2,internet:0,interpol:30,interpret:[16,18],intersect:31,inv:22,investig:22,invok:0,involv:31,iplay:22,ipx:25,ipython3:26,ir:29,iserverrequest:16,isobar:19,isol:0,isotherm:[19,25,30],issu:33,item:[17,30,31],its:[0,16,22,31],itself:[0,16],j:[25,27],jack:25,jan:23,java:[0,25],javadoc:16,jax:23,jdn:25,jep:16,jj:27,join:19,jupyt:33,just:[17,22,31,33],jvm:16,k0co:23,k40b:25,k9v9:25,k:[18,22,23,25,30],kabe:25,kabi:25,kabq:[23,25],kabr:25,kaci:25,kack:25,kact:25,kacv:[23,25],kag:25,kagc:25,kahn:25,kai:25,kak:25,kal:25,kalb:25,kali:25,kalo:25,kalw:25,kama:25,kan:25,kanb:25,kand:25,kaoo:25,kapa:25,kapn:25,kart:25,kase:25,kast:25,kati:25,katl:[23,25],kau:25,kaug:25,kauw:25,kavl:25,kavp:25,kaxn:25,kazo:25,kbaf:25,kbce:25,kbde:[23,25],kbdg:23,kbdl:25,kbdr:25,kbed:25,kbfd:25,kbff:25,kbfi:25,kbfl:25,kbgm:25,kbgr:25,kbhb:25,kbhm:25,kbi:[23,25],kbih:25,kbil:[23,25],kbjc:25,kbji:25,kbke:25,kbkw:25,kblf:25,kblh:25,kbli:25,kbml:25,kbna:25,kbno:25,kbnv:25,kbo:[23,25],kboi:[23,25],kbpt:25,kbqk:25,kbrd:25,kbrl:25,kbro:[23,25],kbtl:25,kbtm:25,kbtr:25,kbtv:25,kbuf:25,kbui:23,kbur:25,kbvi:25,kbvx:25,kbvy:25,kbwg:25,kbwi:25,kbyi:25,kbzn:25,kcae:25,kcak:25,kcar:[23,25],kcd:25,kcdc:25,kcdr:25,kcec:25,kcef:25,kcgi:25,kcgx:25,kch:[23,25],kcha:25,kchh:25,kcho:25,kcid:25,kciu:25,kckb:25,kckl:25,kcle:[23,25],kcll:25,kclm:25,kclt:[23,25],kcmh:25,kcmi:25,kcmx:25,kcnm:25,kcnu:25,kco:25,kcod:25,kcoe:[23,25],kcon:25,kcou:25,kcpr:[23,25],kcre:25,kcrp:25,kcrq:25,kcrw:[23,25],kcsg:25,kcsv:25,kctb:25,kcvg:25,kcwa:25,kcy:25,kdab:25,kdag:25,kdai:25,kdal:25,kdan:25,kdbq:25,kdca:25,kddc:25,kdec:25,kden:25,kdet:25,kdfw:[23,25],kdhn:25,kdht:25,kdik:25,kdl:25,kdlh:[23,25],kdmn:25,kdpa:25,kdra:25,kdro:25,kdrt:[23,25],kdsm:[23,25],kdtw:25,kdug:25,kduj:25,keat:25,keau:25,kecg:25,keed:25,keep:[20,24,31],kege:25,kei:[4,6,7,16,31],kekn:25,keko:25,kel:25,keld:25,keli:[23,25],kelm:25,kelo:25,kelp:[23,25],kelvin:[18,19,28],kenv:25,keph:[23,25],kepo:25,kept:17,kepz:25,keri:25,kesf:25,keug:25,kevv:25,kewb:25,kewn:25,kewr:25,keyw:25,kfai:25,kfam:25,kfar:[23,25],kfat:[23,25],kfca:25,kfdy:25,kfkl:25,kflg:[23,25],kfll:25,kflo:25,kfmn:25,kfmy:25,kfnt:25,kfoe:25,kfpr:25,kfrm:25,kfsd:[23,25],kfsm:25,kftw:25,kfty:25,kfve:25,kfvx:25,kfwa:25,kfxe:25,kfyv:25,kg:[25,26],kgag:25,kgcc:25,kgck:25,kgcn:25,kgeg:25,kgfk:25,kgfl:25,kggg:25,kggw:25,kgjt:[23,25],kgl:25,kgld:[23,25],kglh:25,kgmu:25,kgnr:25,kgnv:25,kgon:25,kgpt:25,kgrb:[23,25],kgri:25,kgrr:25,kgso:25,kgsp:25,kgtf:25,kguc:25,kgup:25,kgwo:25,kgyi:25,kgzh:25,khat:25,khbr:25,khdn:25,khib:25,khio:25,khky:25,khlg:25,khln:[23,25],khob:25,khon:25,khot:[23,25],khou:[23,25],khpn:25,khqm:25,khrl:25,khro:25,khsv:[23,25],kht:25,khth:25,khuf:25,khul:25,khut:25,khvn:25,khvr:25,khya:25,ki:[22,29],kiad:25,kiag:25,kiah:25,kict:[23,25],kida:[23,25],kil:25,kilg:25,kilm:25,kind:[22,23,25],kink:25,kinl:25,kint:25,kinw:25,kipl:25,kipt:25,kisn:25,kisp:25,kith:25,kiwd:25,kjac:25,kjan:[23,25],kjax:[23,25],kjbr:25,kjfk:25,kjhw:25,kjkl:25,kjln:25,kjm:25,kjst:25,kjxn:25,kkl:25,kla:25,klaf:25,klan:25,klar:25,klax:[23,25],klbb:[23,25],klbe:25,klbf:[23,25,30],klcb:25,klch:25,kleb:25,klex:[23,25],klfk:25,klft:25,klga:25,klgb:25,klgu:25,klit:25,klmt:[23,25],klnd:25,klnk:[23,25],klol:25,kloz:25,klrd:25,klse:25,klsv:23,kluk:25,klv:25,klw:25,klwb:25,klwm:25,klwt:25,klyh:25,klzk:25,kmaf:25,kmb:25,kmcb:25,kmce:25,kmci:25,kmcn:25,kmco:25,kmcw:25,kmdn:25,kmdt:25,kmdw:25,kmei:25,kmem:[23,25],kmfd:25,kmfe:25,kmfr:25,kmgm:25,kmgw:25,kmhe:25,kmhk:25,kmht:25,kmhx:[15,25,26],kmhx_0:26,kmia:[23,25],kmiv:25,kmkc:25,kmke:25,kmkg:25,kmkl:25,kml:25,kmlb:25,kmlc:25,kmlf:23,kmli:25,kmlp:23,kmlt:25,kmlu:25,kmmu:25,kmob:[23,25],kmot:25,kmpv:25,kmqt:25,kmrb:25,kmry:25,kmsl:25,kmsn:25,kmso:[23,25],kmsp:[23,25],kmss:25,kmsy:[23,25],kmtj:25,kmtn:25,kmwh:25,kmyr:25,kna:25,knew:25,knl:25,knot:[19,23,25,28,30],know:[16,18,20],known:[0,20,33],knsi:25,knyc:23,knyl:23,ko:30,koak:25,kofk:25,kogd:25,kokc:[23,25],kolf:23,koli:23,kolm:25,koma:25,kont:25,kopf:25,koqu:25,kord:[23,25],korf:25,korh:25,kosh:25,koth:[23,25],kotm:25,kp11:25,kp38:25,kpae:25,kpah:25,kpbf:25,kpbi:25,kpdk:25,kpdt:[23,25],kpdx:[23,25],kpfn:25,kpga:25,kphf:25,kphl:[23,25],kphn:25,kphx:[23,25],kpia:25,kpib:25,kpie:25,kpih:[23,25],kpir:25,kpit:[23,25],kpkb:25,kpln:25,kpmd:25,kpn:25,kpnc:25,kpne:25,kpou:25,kpqi:25,kprb:25,kprc:25,kpsc:25,kpsm:[23,25],kpsp:25,kptk:25,kpub:25,kpuw:23,kpvd:25,kpvu:25,kpwm:25,krad:25,krap:[23,25],krbl:25,krdd:25,krdg:25,krdm:[23,25],krdu:25,krf:22,krfd:25,kric:[23,25],kriw:25,krk:25,krkd:25,krno:[23,25],krnt:25,kroa:25,kroc:25,krow:25,krsl:25,krst:25,krsw:25,krum:25,krut:23,krwf:25,krwi:25,krwl:25,ksac:25,ksaf:25,ksan:25,ksat:[23,25],ksav:25,ksba:25,ksbn:25,ksbp:25,ksby:25,ksch:25,ksck:25,ksdf:25,ksdm:25,ksdy:25,ksea:[23,25],ksep:25,ksff:25,ksfo:[23,25],ksgf:25,ksgu:25,kshr:25,kshv:[23,25],ksjc:25,ksjt:25,kslc:[23,25],ksle:25,kslk:25,ksln:25,ksmf:25,ksmx:25,ksn:25,ksna:25,ksp:25,kspi:25,ksrq:25,kssi:25,kst:25,kstj:25,kstl:25,kstp:25,ksu:25,ksun:25,ksux:25,ksve:25,kswf:25,ksyr:[23,25],ktc:25,ktcc:25,ktcl:25,kteb:25,ktiw:25,ktlh:[23,25],ktmb:25,ktol:25,ktop:25,ktpa:[23,25],ktph:25,ktri:25,ktrk:25,ktrm:25,kttd:25,kttf:23,kttn:25,ktu:25,ktul:25,ktup:25,ktvc:25,ktvl:25,ktwf:25,ktxk:25,kty:25,ktyr:25,kuca:25,kuil:23,kuin:25,kuki:25,kunv:[23,25],kvct:25,kvel:25,kvih:23,kvld:25,kvny:25,kvrb:25,kwarg:[2,12],kwjf:25,kwmc:[23,25],kwrl:25,kwy:25,ky22:25,ky26:25,kykm:25,kykn:25,kyng:25,kyum:25,kzzv:25,l1783:25,l:[19,20,22,25,29,30],la:28,laa:25,label:[18,31],lake:23,lambertconform:[17,23,28],lamp2p5:22,land:[23,31],languag:16,lap:25,larg:24,larger:31,last:[17,22,23,31],last_tim:31,lasthourdatetim:[17,23,28,31],lat:[2,6,9,15,16,17,18,19,20,22,24,26,27,28,29,31],later:[23,28,31],latest:[2,19,29,31],latitud:[16,17,18,19,23,24,28],latitude_formatt:[18,21,24,26,27,28,29,31],latlondeleg:9,latlongrid:9,lax:23,layer:[16,22,26],lazi:2,lazygridlatlon:12,lazyloadgridlatlon:[2,12],lbb:23,lbf:23,lby:25,lcl:[25,30],lcl_pressur:30,lcl_temperatur:30,ldadmesonet:16,ldl:25,ldmd:0,lead:18,left:[20,30],leftov:2,len:[17,18,19,24,26,28,29,31],less:[16,19],let:[16,18,20],level3:32,level:[0,2,4,6,7,12,16,18,19,24,25,26,30,31,32],levelreq:19,lex:23,lhx:25,li:[22,29],lib:18,librari:[18,31],lic:25,lift:29,light:21,lightn:32,like:[3,16,22],limit:[2,16,17,20,28],line:[16,19,20,24,25,30,31],linestyl:[19,20,24,25,28,29,30],linewidth:[19,20,23,24,25,27,28,30],linux:0,liq:26,lisfc2x:22,list:[2,4,6,7,8,16,19,21,25,26,29],littl:31,live:20,ll:[17,18,22,24,31,33],lm5:22,lm6:22,lmt:23,lnk:23,load:2,loc:[19,25,30,31],local:[0,16,20],localhost:12,locap:22,locat:[2,4,7,16,18,21,24,30,31],locationfield:[24,28],locationnam:[2,4,12,16,18],log:[0,25,30],logger:0,logic:[18,24,31],logp:30,lon:[2,6,9,15,16,17,18,19,20,22,24,26,27,28,29,31],longer:[20,31],longitud:[16,17,18,19,23,24,28],longitude_formatt:[18,21,24,26,27,28,29,31],look:[16,18,20,22,24,31],lookup:[16,31],loop:[20,31],lor:25,louisiana:28,low:29,lower:[29,31],lrr:25,lsf:25,lst:29,lsv:23,lu:25,lvl:[19,22],lvm:25,lw1:25,m:[17,19,23,25,26,28,29,30,31],ma:24,mac:[0,20,25],made:[16,17,20,24,31],madv:22,magenta:20,magnitud:19,mai:[0,16,18,20,28,33],main:[0,16],maintain:16,majorriv:24,make:[16,17,18,28],make_map:[26,27,28,29],makedir:20,maketim:13,man_param:30,manag:[0,16,33],mandatori:30,mangeo:30,mani:[18,24,28,31],manifest:16,manipul:[0,16,17,18,20,24,31],manner:16,manual:[25,31],map:[16,17,22,23,27,28,29,31,32],mapdata:[24,28],mapgeometryfactori:16,mapper:32,marker:[21,24,27],markerfacecolor:30,mask:[17,28],masked_invalid:24,match:[2,16],math:[19,25,30],mathemat:16,matplotlib:[17,18,19,20,21,23,24,25,26,27,28,29,30,31],matplotplib:24,max:[17,18,19,24,25,26,27,29,30],maxept:22,maximum:[24,27],maz:25,mb:[19,22,30],mbar:[23,25,28,30],mcida:29,mcon2:22,mcon:22,mdpc:25,mdpp:25,mdsd:25,mdst:25,mean:16,measur:21,melt:26,mem:23,memori:16,merged_counti:24,mergesound:25,mesocyclon:26,messag:[0,16,31],met:[2,16],metadata:0,metar:[2,16,17,32],meteorolog:[0,33],meteosat:29,meter:[18,22,24],method:[2,16,20,22,31],metpi:[17,19,27,28,30,32],mf:16,mgfl:25,mggt:25,mght:25,mgpb:25,mgsj:25,mham:25,mhca:25,mhch:25,mhlc:25,mhle:25,mhlm:25,mhnj:25,mhpl:25,mhro:25,mhsr:25,mhte:25,mhtg:25,mhyr:25,mia:23,mib:25,microburst:21,micron:29,mie:25,might:[2,22,33],min:[17,18,19,24,26,27,29],mind:16,minept:22,miniconda3:18,minimum:24,minut:[17,28,29],miscellan:29,miss:[28,30],mississippi:28,mix1:22,mix2:22,mix:25,mixrat:22,mkj:25,mkjp:25,mld:25,mlf:23,mllcl:22,mlp:23,mm:22,mma:25,mmaa:25,mmag:22,mmbt:25,mmc:25,mmce:25,mmcl:25,mmcn:25,mmcu:25,mmcv:25,mmcz:25,mmdo:25,mmgl:25,mmgm:25,mmho:25,mmlp:25,mmma:25,mmmd:25,mmml:25,mmmm:25,mmmt:25,mmmx:25,mmmy:25,mmmz:25,mmnl:25,mmp:22,mmpr:25,mmrx:25,mmsd:25,mmsp:25,mmtc:25,mmtj:25,mmtm:25,mmto:25,mmtp:25,mmun:25,mmvr:25,mmzc:25,mmzh:25,mmzo:25,mnmg:25,mnpc:25,mnt3hr:22,mnt6hr:22,mob:23,moddelsound:16,model:[6,18,22,29,32],modelnam:[6,16,19],modelsound:[14,19,22,25],modern:0,modifi:[0,16,20,31],moisutr:25,monoton:18,mor:25,more:[16,17,18,20,22,31],most:[0,16,18,22,30,31],move:16,mpatch:31,mpbo:25,mpch:25,mpda:25,mpl:[18,21,24,26,27,28,29,31],mpl_toolkit:[19,25,30],mpmg:25,mpsa:25,mpto:25,mpv:22,mpx:25,mr:25,mrch:25,mrf:[23,25],mrlb:25,mrlm:25,mrm:22,mrms_0500:22,mrms_1000:22,mroc:25,mrpv:25,ms:28,msac:25,msfdi:22,msfi:22,msfmi:22,msg:22,msgtype:21,msl:22,mslp:25,mso:23,msp:23,msr:22,msss:25,msy:23,mtch:25,mtl:25,mtpp:25,mtri:[25,30],mtv:[22,25],mty:25,muba:25,mubi:25,muca:25,mucap:22,much:31,mucl:25,mucm:25,mucu:25,mugm:25,mugt:25,muha:25,multi:2,multi_value_param:[23,28],multilinestr:24,multipl:[0,16,20,22,24,28],multipolygon:[15,24,28,31],mumo:25,mumz:25,mung:25,must:[2,3,16,20,25],muvr:25,muvt:25,mwcr:25,mxt3hr:22,mxt6hr:22,myb:25,myeg:25,mygf:25,mygw:25,myl:25,mynn:25,mzbz:25,mzt:25,n0r:29,n1p:29,n:[24,25,30],nam12:22,nam40:[19,22,27],nam:[19,25],name:[0,2,4,5,7,8,16,19,20,24,26,28,29,30,31],nan:[17,23,26,28,29,30],nanmax:26,nanmin:26,nation:[0,31,33],nativ:[2,3,16,20],naturalearthfeatur:[24,29,31],navgem0p5:22,nbe:22,ncep:25,nck:25,ncoda:22,ncol:31,ncp:0,ndarrai:26,neatli:24,necessari:[16,24,31],need:[2,16,18,20,22,24,31,33],nesdi:29,netcdf:[0,20],newdatarequest:[2,12,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],newhostnam:2,nexrad3:2,nexrad:32,nexrad_data:26,nexrcomp:29,next:[20,23,28,31],ngx:25,nh:29,nhk:25,nice:24,nid:25,night:21,nkx:25,noa:25,noaa:25,noaaport:25,nohrsc:22,nomin:22,non:33,none:[2,5,6,7,9,12,18,20,23,24,27,28,29,31],normal:29,north:23,northern:29,northward_wind:[23,28],note:[16,17,18,19,20,22,24,31],notebook:[17,19,21,23,24,25,26,27,28,29,30,33],notif:0,now:[22,24,27,28,31],np:[17,19,20,21,23,25,26,27,28,29,30,31],npoess:29,nru:25,nsharp:25,nsof:29,nst1:22,nst2:22,nst:22,ntat:22,ntd:25,ntmp:25,ntp:29,number:[0,8,16,18,24,31],numer:2,nummand:30,nummwnd:30,numpi:[9,15,16,17,19,20,21,23,24,25,26,27,28,29,30,31],numsigt:30,numsigw:30,numtrop:30,nw:[22,23,25,28,31],nx:[9,12],ny:[9,12],nyc:23,nyl:23,o:25,ob:[2,4,15,16,17,21,22,24,25,30,31,32],object:[2,3,4,6,16,30],observ:[0,23],observs:28,obsgeometryfactori:16,ocean:23,oct:21,off:[0,18,20,31],offer:22,offic:31,offset:[16,20,24],offsetstr:29,often:16,okai:18,okc:23,olf:23,oli:23,om:25,omega:25,onc:[16,22],one:[16,18,20,22,24,31],onli:[0,2,4,17,22,24,31],onlin:22,onto:20,op:24,open:[0,16,33],oper:[0,21,33],opt:18,optim:17,option:[2,6,16,22,29,31],orang:[17,24],orbit:21,ord:23,order:[17,18,19,24,31,33],org:[0,31],orient:[18,24,26,27,29],origin:20,orn:22,orthograph:21,os:[0,20],ot:31,oth:23,other:[0,16,20,22,24,29],otherwis:2,our:[17,18,19,20,22,24,27,28,29,31,33],ourselv:25,out:[2,16,22,23,28,31,33],output:22,outputdir:20,outsid:16,ovc:[23,28],over:25,overhead:2,overlai:31,own:[0,16],ozon:29,p3hr:22,p6hr:22,p:[22,25,29,30],pa:25,pacakg:33,packag:[0,16,18,22,24,31],pad:[20,31],pad_inch:20,padv:22,page:24,pai:19,pair:[3,6,17],pamphlet:31,param1:22,param2:22,param3:22,param:[4,8,16,17,22,23,28,31],paramet:[2,4,6,8,9,12,16,18,19,28,30,31,32],paramt:25,parcel:30,parcel_profil:[25,30],parm:[19,22,25],parm_arrai:30,parmid:5,pars:31,part:[0,16],particular:[2,16],pass:[3,16,20,28],patch:31,path:[0,20,31],pbe:22,pcolormesh:[26,27,29],pd:15,pdf:0,pdt:23,pdx:23,pec:22,pecif:16,percent:29,perform:[2,3,6,16,19],period:25,person:0,perspect:0,pertin:16,pfrnt:22,pgrd1:22,pgrd:22,pgrdm:22,phase:26,phen:31,phenomena:[21,31],phensig:15,phensig_titl:31,phensigstr:31,phl:23,phx:23,physicalel:29,pick:[20,22],pid:5,piec:[0,16],pih:23,pirep:[16,22],pit:23,piva:22,pixel:20,place:31,plai:[17,18],plan:16,platecarre:[17,18,21,23,24,26,27,28,29,31],pleas:[18,33],plot:[19,20,21,22,24,25,26,30],plot_barb:[19,25,30],plot_colormap:[19,25,30],plot_dry_adiabat:19,plot_mixing_lin:19,plot_moist_adiabat:19,plot_paramet:17,plot_text:23,plt:[17,18,19,20,21,23,24,25,26,27,28,29,30,31],plug:16,plugin:[25,30],plugindataobject:16,pluginnam:16,png:20,poe:29,point:[15,16,19,20,21,22,24,25,27],pointdata:16,poli:[15,31],polit:24,political_boundari:[24,31],polygon:[15,16,17,19,24,27,28,31],pop:24,popul:[16,22,24,31],populatedata:16,port:[5,11],post:0,postgr:[0,24],pot:22,pota:22,power:[16,29],pr:[22,25],practicewarn:22,preced:16,precip:[26,32],precipit:[23,26,27,28,29],prepar:[16,23],prepend:23,pres_weath:[23,28],present:0,present_weath:[23,28],pressur:[19,25,29,30],presweath:[2,23,28],previou:[18,24,31],previous:[24,33],primari:0,print:[15,17,18,19,20,21,22,23,24,25,26,27,28,29,31],printout:31,prman:30,proce:20,process:[0,2,16,31],processor:0,prod:26,produc:[17,18,31],product:[0,2,15,16,17,25,26,32],productid:26,productnam:26,prof:30,profil:[0,16,22,25,30],prog_disc:24,prognam:5,program:[0,33],progress:24,proj:[20,23,28],project:[16,17,18,20,21,23,24,26,27,28,29,31],proper:20,properli:31,properti:29,proprietari:0,provid:[0,2,16,24,31,33],prregi:29,prsig:30,prsigt:30,ps:30,psm:23,psql:0,ptr:22,ptva:22,ptyp:22,pull:[20,23,31],pulsecount:21,pulseindex:21,pure:16,purpl:17,put:[23,28],puw:23,pv:22,pveq:22,pw2:22,pw:[22,29],px_height:20,px_width:20,py:[16,18,33],pydata:14,pygeometrydata:14,pygriddata:[14,18,24],pyjobject:16,pyplot:[17,18,19,20,21,23,24,25,26,27,28,29,30,31],python3:[18,33],python:[0,2,3,16,17,18,20,22,23,24,28,29,31],q:25,qdiv:22,qnvec:22,qpidd:0,qpv1:22,qpv2:22,qpv3:22,qpv4:22,qsvec:22,qualifi:20,queri:[0,16,19,20,24],queue:0,quick:20,quit:22,qvec:22,r:[16,19,20,21,25,30],radar:[0,2,4,10,16,22,32],radar_spati:22,radarcommon:[14,15],radargridfactori:16,radial:10,rain1:22,rain2:22,rain3:22,rain:29,rainbow:[18,26,27],rainfal:27,rais:[3,19],rang:[16,17,20,21,23,26,28,31],rap13:[15,18,22],rap:23,raster:10,rate:[26,29],rather:19,ratio:[20,25],raw:[16,18,20],raytheon:[0,16,17,18,23,28,31],rbg:20,rc:0,rcparam:[19,23,25,30],rdm:23,re:[0,16,17,20,22,31],reach:33,read:[0,18,22],readabl:0,readi:[0,22,31],reason:16,rec:26,receiv:0,recent:[18,30],recogniz:31,record:[10,16,17,19,23,24,28,30,31],rectangular:[4,16],red:[0,17,18,21],reduc:16,ref:[15,16,31],ref_str:31,ref_tim:31,refer:[2,4,16,20,22,24,25,31],refin:24,refl:[15,26],reflect:[0,26],reftim:[2,20,25,31],reftimeonli:[1,2,12],regardless:16,region:32,registri:16,rel:26,relat:[0,17],releas:[0,33],relev:[17,22],remain:0,rememb:31,remov:[20,31],render:[0,24,29],replac:[16,19],reporttyp:25,repres:[3,16],represent:3,req:16,request:[0,1,2,4,5,6,11,12,15,17,19,20,21,23,24,25,26,27,28,29,30,31,33],requir:[0,2,16,20,24],requst:24,reset:20,resiz:20,resolut:[17,18,20,21,24,26,27,29],resourc:[22,32],respect:[16,18],respons:[2,15,17,18,20,21,23,24,25,26,27,28,29,30,31],rest:[16,24,28],result:[16,17],retriev:[0,4,6,30],retrofit:16,review:[0,16],rgb:20,rgbname:20,rh:[22,25],rh_001_bin:22,rh_002_bin:22,rha:22,ric:23,right:[0,20],right_label:[18,24,26,28,29,31],river:16,rm5:22,rm6:22,rmix:25,rmprop2:22,rmprop:22,rno:23,ro:22,rotat:19,round:30,rout:16,royalblu:17,rpttype:30,rrqpe:29,rsa:22,rtma:22,rtof:22,run:[0,2,16,18,19,20,22,31,33],runtim:2,runtimewarn:[17,23,25,26,28],rut:23,rv:22,s:[16,17,18,19,20,22,23,24,25,27,28,29,31,33],same:[3,16,20,24,28,29],sampl:[6,24],samplepoint:6,sat:23,sat_h:20,satellit:[0,16,20,22,32],satellite_height:20,satellitefactori:16,satellitefactoryregist:16,satellitegriddata:16,satellitegridfactori:16,save:[0,16],savefig:[20,23],sc:28,scale:[18,24,29,31],scan:[0,15,26],scarter:[18,20],scatter:[21,24,27],schema:24,scipi:18,scope:16,scratch:16,script:[0,30],sct:[23,28],sea:23,seaic:22,sealevelpress:[23,28],search:16,sec:26,second:[9,22,29,31],section:[16,24,31],sector:[15,20,27],sectorid:29,see:[0,16],segement:17,segment:17,select:[19,20,23,24,26],self:18,semimajor_axi:20,semiminor_axi:20,send:[0,16,17],sendrequest:11,sens:0,sensorcount:21,sent:[0,17],sep:25,separ:[0,2,16,17,30],seri:[6,21],server:[0,16,17,18,19,20,22,24,30,31,33],serverrequestrout:16,servic:[0,11,16,31,33],set:[2,4,16,17,18,20,23,24,29,30,31],set_ext:[17,18,23,24,26,27,28,29,31],set_label:[18,24,26,27,29],set_size_inch:20,set_titl:[17,21,23,28],set_xlim:[19,25,30],set_ylim:[19,25,30],setdatatyp:[4,15,16,18,20,22,29,30,31],setenvelop:[4,16],setlazyloadgridlatlon:[2,12],setlevel:[4,15,16,18,22,26,27],setlocationnam:[4,15,16,18,19,20,22,23,24,25,26,27,28,29,30],setparamet:[4,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],setstoragerequest:16,setup:33,seven:21,sever:[0,21,22,24,31],sfc:[16,29],sfcob:[2,16,22],sfo:23,sh:[0,22,25],shade:18,shaeplyfeatur:31,shape:[4,8,15,16,17,19,22,24,26,27,28,29,31],shape_featur:[24,28,31],shapelyfeatur:[24,28,31],share:0,shear:22,shef:16,shelf:0,should:[2,16],show:[18,19,21,22,23,25,26,29,30,31],shown:31,shrink:[18,24,26,27,29],shrmag:22,shv:23,shwlt:22,shx:22,si:29,signific:30,significantli:24,sigt:30,sigt_param:30,sigtgeo:30,similar:[0,16,17,31],simpl:[23,28],simple_layout:28,simpli:[0,31],sinc:[0,16,20,31],singl:[0,2,16,19,20,22,24,28],single_value_param:[23,28],site:[5,15,18,22,24,25],size:[20,26,29,31],skew:[25,30],skewt:[19,30],skin:29,skip:23,sky_cov:[23,28],sky_layer_bas:[23,28],skycov:[2,23,28],skylayerbas:[2,23,28],slab:16,slant:[25,30],slc:23,sli:22,slightli:16,slow:24,sndobject:19,snorat:22,snoratcrocu:22,snoratemcsref:22,snoratov2:22,snoratspc:22,snoratspcdeep:22,snoratspcsurfac:22,snow1:22,snow2:22,snow3:22,snow:[20,22],snowstorm:21,snowt:22,snsq:22,snw:22,snwa:22,so:[17,18,20,22,31],softwar:[0,16],sole:2,some:[0,16,22],someth:[22,31],sort:[15,21,22,25,26,29,30,31],sound:[6,22,32],sounder:29,soundingrequest:25,sourc:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16],south:28,sp:31,space:31,spacecraft:21,span:23,spatial:[24,28],spcguid:22,spd:[25,30],spec:25,spechum:25,special:[2,16],specif:[0,4,16,18,20,23,24,26,31],specifi:[2,6,8,16,20,22,24],speed:[23,28],spring:16,sqrt:19,src:25,srml:22,srmlm:22,srmm:22,srmmm:22,srmr:22,srmrm:22,ss:22,ssi:22,ssp:22,sst:29,st:22,stack:16,staelev:30,stanam:30,stand:[22,31],standard:[0,24,31],standard_parallel:[23,28],start:[0,16,17,18,22,23,28,31,33],state:[16,17,20,23,24,28,29],statem_sig:31,statement:31,statement_shap:31,states_provinc:31,staticcorioli:22,staticspac:22,statictopo:22,station:[17,28,30,32],station_nam:23,stationid:[16,28],stationnam:[17,23,28],stationplot:[17,23,28],stationplotlayout:[23,28],step:[30,31],stid:[23,28],stop:0,storag:[0,16],store:[0,16,17,28,31],storm:[21,26],stp1:22,stp:22,str:[17,18,19,20,21,22,23,24,25,26,27,28,29,30,31],strftime:[17,23,28,31],striketyp:21,string:[2,4,7,8,9,10,16,19,31],strmmot:22,strptime:[17,23,28,29,31],strtp:22,struct_tim:3,structur:16,style:[16,31],submit:4,subplot:[17,18,21,24,26,27,28,29,31],subplot_kw:[17,18,21,24,26,27,28,29,31],subplotpar:20,subsequ:[17,18,20,24],subset:[16,17],subtair:17,succe:2,sucp:22,suggest:16,suit:0,suitabl:2,sum:31,summari:31,supern:29,suppli:18,support:[0,2,3,4,33],suppress:[17,28],sure:28,surfac:[0,16,19,22,29,32],sw:[23,28],sweep_axi:20,swtidx:22,symbol:[23,28],synop:[2,16],syr:23,system:[0,22],t0:25,t:[15,16,18,20,22,25,30],t_001_bin:22,tabl:[0,28],tadv:22,tair:17,take:[0,16,18,20,22,30,31],taken:[0,16,20],talk:22,tar:22,task:16,taskbar:0,tconu:29,td2:25,td:[25,30],tdef:22,tdend:22,tdman:30,tdsig:30,tdsigt:30,tdunit:30,technic:16,temp:[18,23,25,28,29],temperatur:[18,19,22,23,25,28,30,32],ten:28,term:0,termain:0,terrain:24,test_dir:20,text:21,textcoord:[20,24],tfd:29,tgrd:22,tgrdm:22,than:[0,18,19,31],the_geom:[24,28],thei:[0,16,24,31],them:[16,17,23,28],therefor:16,thermo:25,thgrd:22,thi:[0,2,16,17,18,19,20,22,23,24,25,26,28,30,31,33],third:0,thom5:22,thom5a:22,thom6:22,those:[16,17,20,24],though:20,thousand:28,three:[16,20,21,25],threshval:10,thrift:11,thriftclient:[14,16,19],thriftclientrout:14,thriftrequestexcept:11,through:[0,16,17,18,19,20,30,31],throughout:[17,20,22,24,31],thrown:16,ti:24,tie:24,tier:6,tight:20,time:[2,3,6,7,12,15,16,19,20,21,23,24,25,26,27,28,29,30],time_str:31,timeagnosticdataexcept:16,timearg:3,timedelta:[17,19,23,28,31],timeit:19,timeob:[23,28],timerang:[2,3,6,16,17,19,23,28,31],timereq:19,timestamp:3,timestr:13,timeutil:14,tip:[17,20,24],tir:22,titl:[19,25,30,31],title_str:[30,31],tlh:23,tman:30,tmax:22,tmdpd:22,tmin:22,tmp:[25,28],togeth:0,toggl:31,tool:0,toolbar:0,top:[16,17,18,20,21,22,24,26,29,31],top_label:[18,24,26,28,29,31],topo:[22,24],topographi:[22,32],tori2:22,tori:22,tornado:21,total:[17,21,24,26,27,29],totqi:22,tp3hr:22,tp6hr:22,tp:[22,27],tp_inch:27,tpa:23,tpcwindprob:22,tpman:30,tpsig:30,tpsigt:30,tpunit:30,tpw:29,tqind:22,track:[26,31],train:18,transform:[17,20,21,23,24,27,28],tree:[15,29],tri:[25,30],trop:22,tropopaus:22,truncat:31,tshrmi:22,tstk:22,tt:[27,29],ttf:23,ttot:22,tua:22,tune:[2,16],tupl:9,turn:31,tutori:[17,18,20,22,24,31],tv:22,tw:22,twind:22,twindu:22,twindv:22,twmax:22,twmin:22,two:[0,16,18,24,31,33],twstk:22,txsm:22,txt:24,type:[0,3,8,10,16,17,18,20,24,30,31],typeerror:[2,3,23],typic:[0,16,22,24],u:[19,23,25,28,30],uc:25,ucar:[0,15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33],ucomp:25,uf:[16,17,18,23,28,31],ufx:22,uil:23,ulsnorat:22,unbias:26,under:31,underli:16,understand:[16,18],understood:[16,24],undertak:16,undocu:16,unidata:[15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33],unidata_16:25,unifi:[0,16],uniqu:[2,31],unit:[8,9,16,17,19,22,23,25,26,27,28,30],uniwisc:29,unsupportedoperationexcept:16,unsupportedoutputtypeexcept:16,until:2,unv:23,up:[16,20,24,33],updat:33,upper:[0,22,32],uri:11,url:[18,22],urma25:22,us:[0,2,6,17,19,20,22,23,28,30],us_east_delaware_1km:22,us_east_florida_2km:22,us_east_north_2km:22,us_east_south_2km:22,us_east_virginia_1km:22,us_hawaii_1km:22,us_hawaii_2km:22,us_hawaii_6km:22,us_west_500m:22,us_west_cencal_2km:22,us_west_losangeles_1km:22,us_west_lososos_1km:22,us_west_north_2km:22,us_west_sanfran_1km:22,us_west_socal_2km:22,us_west_washington_1km:22,use_level:19,use_parm:19,useless:16,user:[0,5,18,20,26],userwarn:18,utc:[29,31],utcnow:[17,23,28,29,31],util:22,uw:[19,22],uwstk:22,v:[0,19,23,25,28,30],va:20,vadv:22,vadvadvect:22,vah:29,valid:[7,18,26,27],validperiod:30,validtim:30,valu:[2,4,7,8,11,16,17,20,23,24,25,27,28,31],valueerror:[19,28],vaml:29,vap:25,vapor:25,vapor_pressur:25,vapr:25,variabl:[17,20,23,28,31],variant:18,variou:[0,23,24],vc:25,vcomp:25,veloc:[0,26],veri:[16,31],version:0,vert:26,vertic:[25,30,31,32],vgp:22,via:[0,3,16],view:0,vih:23,visibl:29,vist:22,visual:[0,17,20,22,24,31],vmax:18,vmin:18,vmp:29,volum:0,vs:16,vsmthw:22,vss:22,vtec:31,vtot:22,vtp:29,vw:[19,22],vwstk:22,w:[19,20,29,31],wa:[0,16,19,28],wai:[2,16,27,31],wait:2,want:[16,17,20,22,31],warn:[16,17,18,22,23,24,25,26,28,32],warn_sig:31,warning_shap:31,watch:[24,32],watch_shap:31,watch_sig:31,water:29,wcd:22,wcda:29,wconu:20,wd:22,wdiv:22,wdman:30,we:[17,18,20,22,23,24,25,28,31],weak:4,weasd:22,weather:[0,6,23,28,31,33],weatherel:6,well:[0,16,18,31,33],west:29,west_6km:22,westatl:22,westconu:22,wfo:24,what:[16,19,20,22,31],when:[0,2,17,18,19,20,24],where:[9,16,19,20,22,25,27,31],whereev:20,whether:[2,20,31],which:[0,6,16,17,18,20,22,24,25,31],white:27,who:[0,16],wide:21,width:20,wind:[19,21,22,23,25,28,30],wind_compon:[23,25,28,30],wind_direct:25,wind_spe:[25,30],winddir:[23,28],windspe:[23,28],wish:[16,20,22],withe:24,within:[0,2,4,16,24],without:[0,2,16,28],wkb:19,wmc:23,wmo:[23,28],wmostanum:30,wndchl:22,word:16,work:[0,2,22,33],workstat:0,worri:16,worth:31,would:[2,16,31],wpre:30,wrap:16,write:0,write_imag:20,writer:[16,32],written:[0,16,19,20],wsman:30,wsp:22,wsp_001_bin:22,wsp_002_bin:22,wsp_003_bin:22,wsp_004_bin:22,wsunit:30,wv:29,ww3:22,www:0,x:[0,17,18,19,20,21,23,24,27,28],xformatt:[18,24,26,28,29,31],xlen:10,xloc:20,xml:16,xx:31,xycoord:20,xytext:24,y:[17,18,19,21,23,24,25,27,28,29,31],yformatt:[18,24,26,28,29,31],ylen:10,yml:33,you:[16,18,20,22,28,30,31,33],your:22,yyyi:22,zagl:22,zone:16,zpc:23},titles:["About Unidata AWIPS","CombinedTimeQuery","DataAccessLayer","DateTimeConverter","IDataRequest (newDataRequest())","IFPClient","ModelSounding","PyData","PyGeometryData","PyGridData","RadarCommon","ThriftClient","ThriftClientRouter","TimeUtil","API Documentation","Available Data Types","Development Guide","Colored Surface Temperature Plot","Colorized Grid Data","Forecast Model Vertical Sounding","GOES CIRA Product Writer","GOES Geostationary Lightning Mapper","Grid Levels and Parameters","METAR Station Plot with MetPy","Map Resources and Topography","Model Sounding Data","NEXRAD Level3 Radar","Precip Accumulation-Region Of Interest","Regional Surface Obs Plot","Satellite Imagery","Upper Air BUFR Soundings","Watch Warning and Advisory Plotting","Data Plotting Examples","Python AWIPS Data Access Framework"],titleterms:{"1":[17,18,20,22,24,31],"10":[22,24],"11":24,"16":29,"2":[17,18,20,22,24,31],"3":[17,18,20,22,24,31],"4":[17,18,20,22,24,31],"5":[17,18,20,22,24,31],"6":[17,18,20,22,24,31],"7":[17,22,24,31],"8":[22,24,31],"9":[22,24,31],"function":[18,20,24,31],"import":[17,18,20,22,24,31],"new":[16,22],Of:27,about:0,access:[17,33],accumul:27,addit:[17,18,20,24,31],advisori:31,air:30,alertviz:0,also:[17,18,20,22,24,31],api:14,avail:[15,22,25,29],awip:[0,33],background:16,base:18,binlightn:15,both:28,boundari:[24,31],bufr:30,calcul:25,cave:0,cira:20,citi:24,code:33,color:[17,18],combinedtimequeri:1,comparison:19,conda:33,connect:[17,20,22,24,31],constant:31,contact:33,content:[17,18,20,22,24,31],contourf:18,contribut:16,convert:17,creat:[22,24,29,31],cwa:24,data:[15,16,17,18,20,22,25,31,32,33],dataaccesslay:2,datatyp:16,datetimeconvert:3,defin:[17,18,20],definit:20,design:16,develop:16,dewpoint:25,document:[14,17,18,20,24,31],draw:[24,31],edex:[0,17,20,22,24,31],edexbridg:0,entiti:29,exampl:[32,33],extract:31,factori:16,filter:[17,20,24,31],forecast:19,framework:[16,33],from:[24,25],geograph:17,geometri:31,geostationari:21,get:[20,22,31],get_color:31,get_titl:31,glm:21,goe:[20,21,29],grid:[15,18,22],guid:16,hdf5:0,hodograph:25,how:16,httpd:0,humid:25,idatarequest:4,ifpclient:5,imag:20,imageri:29,implement:16,initi:[17,20,24,31],instal:33,interest:27,interfac:16,interst:24,java:16,lake:24,ldm:0,legend:31,level3:26,level:22,licens:0,lightn:21,limit:18,list:22,locat:[20,22,25],log:19,major:24,make_map:[18,24,31],map:24,mapper:21,merg:24,mesoscal:29,metar:[23,28],metpi:[23,25],model:[19,25],modelsound:6,nearbi:24,newdatarequest:4,nexrad:26,notebook:[18,20,22,31],ob:[23,28],object:[17,18,20,22,24,31],onli:[16,33],out:20,output:20,p:19,packag:33,paramet:[20,21,22,25],pcolormesh:18,phensig:31,pip:33,plot:[17,18,23,28,31,32],plugin:16,polit:31,postgresql:0,pre:33,precip:27,product:[20,29],pydata:7,pygeometrydata:8,pygriddata:9,pypi:0,python:33,qpid:0,question:33,radar:[15,26],radarcommon:10,receiv:16,region:[27,28],regist:16,relat:[18,20,22,31],request:[16,18,22],requisit:33,resourc:24,result:18,retriev:16,river:24,satellit:[15,29],sector:29,see:[17,18,20,22,24,31],set:22,set_siz:20,setup:[17,20,31],sfcob:28,sig:31,signific:31,skew:19,skewt:25,softwar:33,sound:[19,25,30],sourc:[21,29,33],specif:25,state:31,station:23,support:[16,22],surfac:[17,23,28],synop:28,synopt:28,t:19,tabl:[17,18,20,22,24,31],temp:17,temperatur:17,threshold:17,thriftclient:11,thriftclientrout:12,time:[17,18,22,31],timeutil:13,topographi:24,type:[15,22],unidata:0,upper:30,us:[16,18,24,31,33],user:16,vertic:19,warn:[15,31],watch:31,when:16,work:16,write:[16,20],write_img:20,writer:20,wwa:31}}) \ No newline at end of file +Search.setIndex({"docnames": ["about", "api/CombinedTimeQuery", "api/DataAccessLayer", "api/DateTimeConverter", "api/IDataRequest", "api/IFPClient", "api/ModelSounding", "api/PyData", "api/PyGeometryData", "api/PyGridData", "api/RadarCommon", "api/ThriftClient", "api/ThriftClientRouter", "api/TimeUtil", "api/index", "datatypes", "dev", "examples/generated/Colored_Surface_Temperature_Plot", "examples/generated/Colorized_Grid_Data", "examples/generated/Forecast_Model_Vertical_Sounding", "examples/generated/GOES_CIRA_Product_Writer", "examples/generated/GOES_Geostationary_Lightning_Mapper", "examples/generated/Grid_Levels_and_Parameters", "examples/generated/METAR_Station_Plot_with_MetPy", "examples/generated/Map_Resources_and_Topography", "examples/generated/Model_Sounding_Data", "examples/generated/NEXRAD_Level3_Radar", "examples/generated/Precip_Accumulation-Region_Of_Interest", "examples/generated/Regional_Surface_Obs_Plot", "examples/generated/Satellite_Imagery", "examples/generated/Upper_Air_BUFR_Soundings", "examples/generated/Watch_Warning_and_Advisory_Plotting", "examples/index", "index"], "filenames": ["about.rst", "api/CombinedTimeQuery.rst", "api/DataAccessLayer.rst", "api/DateTimeConverter.rst", "api/IDataRequest.rst", "api/IFPClient.rst", "api/ModelSounding.rst", "api/PyData.rst", "api/PyGeometryData.rst", "api/PyGridData.rst", "api/RadarCommon.rst", "api/ThriftClient.rst", "api/ThriftClientRouter.rst", "api/TimeUtil.rst", "api/index.rst", "datatypes.rst", "dev.rst", "examples/generated/Colored_Surface_Temperature_Plot.rst", "examples/generated/Colorized_Grid_Data.rst", "examples/generated/Forecast_Model_Vertical_Sounding.rst", "examples/generated/GOES_CIRA_Product_Writer.rst", "examples/generated/GOES_Geostationary_Lightning_Mapper.rst", "examples/generated/Grid_Levels_and_Parameters.rst", "examples/generated/METAR_Station_Plot_with_MetPy.rst", "examples/generated/Map_Resources_and_Topography.rst", "examples/generated/Model_Sounding_Data.rst", "examples/generated/NEXRAD_Level3_Radar.rst", "examples/generated/Precip_Accumulation-Region_Of_Interest.rst", "examples/generated/Regional_Surface_Obs_Plot.rst", "examples/generated/Satellite_Imagery.rst", "examples/generated/Upper_Air_BUFR_Soundings.rst", "examples/generated/Watch_Warning_and_Advisory_Plotting.rst", "examples/index.rst", "index.rst"], "titles": ["About Unidata AWIPS", "CombinedTimeQuery", "DataAccessLayer", "DateTimeConverter", "IDataRequest (newDataRequest())", "IFPClient", "ModelSounding", "PyData", "PyGeometryData", "PyGridData", "RadarCommon", "ThriftClient", "ThriftClientRouter", "TimeUtil", "API Documentation", "Available Data Types", "Development Guide", "Colored Surface Temperature Plot", "Colorized Grid Data", "Forecast Model Vertical Sounding", "GOES CIRA Product Writer", "GOES Geostationary Lightning Mapper", "Grid Levels and Parameters", "METAR Station Plot with MetPy", "Map Resources and Topography", "Model Sounding Data", "NEXRAD Level3 Radar", "Precip Accumulation-Region Of Interest", "Regional Surface Obs Plot", "Satellite Imagery", "Upper Air BUFR Soundings", "Watch Warning and Advisory Plotting", "Data Plotting Examples", "Python AWIPS Data Access Framework"], "terms": {"weather": [0, 6, 23, 28, 31, 33], "forecast": [0, 2, 6, 18, 21, 22, 29, 32, 33], "displai": [0, 16, 23, 31, 33], "analysi": [0, 33], "packag": [0, 16, 18, 22, 24, 31], "develop": [0, 21, 33], "nation": [0, 31, 33], "servic": [0, 11, 16, 31, 33], "raytheon": [0, 16, 17, 18, 23, 28, 31], "java": [0, 25], "applic": [0, 24], "consist": [0, 16, 24], "data": [0, 2, 4, 6, 7, 8, 9, 10, 21, 24, 26, 27, 28, 29, 30], "render": [0, 24, 29], "client": [0, 2, 12], "which": [0, 6, 16, 17, 18, 20, 22, 24, 25, 31], "run": [0, 2, 16, 18, 19, 20, 22, 23, 31, 33], "red": [0, 17, 18, 21], "hat": 0, "cento": 0, "linux": 0, "mac": [0, 20, 25], "os": [0, 20], "x": [0, 17, 18, 19, 20, 21, 24, 27, 28], "backend": 0, "server": [0, 16, 17, 18, 19, 20, 22, 23, 24, 30, 31, 33], "onli": [0, 2, 4, 17, 22, 23, 24, 31], "take": [0, 16, 18, 20, 22, 23, 30, 31], "unifi": [0, 16], "approach": 0, "ingest": [0, 16], "most": [0, 16, 18, 22, 23, 30, 31], "type": [0, 3, 8, 10, 16, 17, 18, 20, 23, 24, 30, 31], "follow": [0, 16, 20, 25, 30], "standard": [0, 24, 31], "path": [0, 20, 31], "through": [0, 16, 17, 18, 19, 20, 23, 30, 31], "system": [0, 22], "At": 0, "high": [0, 21], "level": [0, 2, 4, 6, 7, 12, 16, 18, 19, 23, 24, 25, 26, 30, 31, 32], "flow": 0, "describ": [0, 20, 31], "taken": [0, 16, 20], "piec": [0, 16], "from": [0, 2, 3, 16, 17, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 33], "its": [0, 16, 22, 31], "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16], "thi": [0, 2, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28, 30, 31, 33], "start": [0, 16, 17, 18, 22, 23, 28, 31, 33], "request": [0, 1, 2, 4, 5, 6, 11, 12, 15, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "store": [0, 16, 17, 23, 28, 31], "an": [0, 2, 4, 7, 16, 17, 18, 20, 21, 22, 23, 24, 25, 29, 30, 31, 33], "includ": [0, 3, 16, 17, 21, 25, 33], "decod": [0, 16], "form": 0, "readabl": 0, "display": 0, "end": [0, 17, 20, 24, 25, 28, 31], "user": [0, 5, 18, 20, 26], "The": [0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 30, 31, 33], "process": [0, 2, 16, 31], "ar": [0, 2, 4, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 33], "highli": 0, "distribut": 0, "messag": [0, 16, 31], "broken": 0, "us": [0, 2, 6, 17, 19, 20, 22, 28, 30], "inter": 0, "commun": [0, 2, 6], "imag": [0, 15, 18, 24, 29, 31], "softwar": [0, 16], "releas": [0, 33], "program": [0, 33], "center": [0, 18, 23, 31, 33], "consid": [0, 16], "public": [0, 16, 17, 20, 23, 24, 31], "domain": [0, 24], "sinc": [0, 16, 20, 31], "without": [0, 2, 16, 28], "proprietari": 0, "code": [0, 16, 20, 22, 23, 24, 26, 28], "As": [0, 16], "export": 0, "control": 0, "do": [0, 16, 17, 22, 31], "appli": [0, 16, 20], "ani": [0, 2, 16, 19, 24, 31], "person": 0, "free": [0, 16, 20, 33], "download": [0, 24], "modifi": [0, 16, 20, 23, 31], "share": 0, "entiti": [0, 15, 20], "who": [0, 16], "re": [0, 16, 17, 20, 22, 23, 31], "encourag": 0, "conduct": 0, "own": [0, 16], "foss": 0, "cot": [0, 25], "entitl": 0, "review": [0, 16], "ensur": 0, "thei": [0, 16, 24, 31], "remain": [0, 23], "compat": [0, 16], "associ": [0, 7, 9, 16, 23, 31], "term": 0, "see": [0, 16], "foss_cots_licens": 0, "pdf": 0, "http": [0, 23, 25, 31, 33], "github": [0, 25, 33], "com": [0, 16, 17, 18, 23, 25, 28, 31, 33], "awips2": [0, 25], "primari": 0, "storag": [0, 16], "environment": [0, 21], "exchang": 0, "visual": [0, 17, 20, 22, 23, 24, 31], "manipul": [0, 16, 17, 18, 20, 23, 24, 31], "common": [0, 16, 17, 18, 23, 24, 28, 31], "environ": [0, 2, 33], "typic": [0, 16, 22, 24], "instal": 0, "workstat": 0, "separ": [0, 2, 16, 17, 30], "other": [0, 16, 20, 22, 24, 29], "compon": [0, 19, 23, 25, 28], "In": [0, 16, 17, 18, 23, 24, 31, 33], "addit": [0, 16], "specif": [0, 4, 16, 18, 20, 23, 24, 26, 31], "sever": [0, 21, 22, 23, 24, 31], "commerci": 0, "off": [0, 18, 20, 31], "shelf": 0, "open": [0, 16, 33], "product": [0, 2, 15, 16, 17, 25, 26, 32], "assist": 0, "oper": [0, 21, 33], "work": [0, 2, 22, 33], "togeth": 0, "compos": 0, "entir": [0, 24], "main": [0, 16], "send": [0, 16, 17], "alert": [0, 16], "when": [0, 2, 17, 18, 19, 20, 24], "readi": [0, 22, 23, 31], "These": [0, 2, 31], "file": [0, 10, 16, 20], "header": 0, "inform": [0, 2, 20, 21, 22, 23, 24, 31], "allow": [0, 2, 16, 17, 19, 20, 23, 24, 31], "determin": [0, 16, 19, 27], "appropri": [0, 31], "default": [0, 6, 16, 20, 23, 31], "simpli": [0, 31], "name": [0, 2, 4, 5, 7, 8, 16, 19, 20, 24, 26, 28, 29, 30, 31], "handl": [0, 16, 24, 31], "all": [0, 2, 4, 6, 16, 17, 19, 20, 22, 24, 30, 31, 33], "than": [0, 18, 19, 31], "grib": [0, 16, 18], "ingestgrib": 0, "after": [0, 16, 20, 23, 31], "write": 0, "metadata": 0, "databas": [0, 16, 24, 28], "via": [0, 3, 16], "postgr": [0, 24], "save": [0, 16], "A": [0, 2, 3, 4, 6, 16, 19, 25, 27, 31], "third": 0, "feed": 0, "stop": 0, "command": 0, "script": [0, 30], "etc": [0, 16, 19, 23], "rc": 0, "d": [0, 15, 16, 17, 19, 23, 25, 28, 29, 31], "init": 0, "edex_camel": 0, "tool": 0, "contain": [0, 16, 23], "number": [0, 8, 16, 18, 24, 31], "differ": [0, 16, 17, 18, 22, 24, 31], "configur": 0, "call": [0, 16, 18, 20, 24, 31, 33], "perspect": 0, "d2d": 0, "two": [0, 16, 18, 23, 24, 31, 33], "dimension": 0, "gfe": [0, 4, 5, 16, 22], "graphic": 0, "editor": 0, "ncp": 0, "sh": [0, 22, 25], "modern": 0, "version": 0, "i": [0, 16, 22, 24, 27, 28, 29], "design": [0, 20], "present": 0, "variou": [0, 23, 24], "notif": 0, "error": [0, 16, 22], "alarm": 0, "can": [0, 3, 16, 17, 18, 20, 22, 23, 24, 25, 28, 29, 31, 33], "execut": 0, "either": [0, 16, 22, 33], "independ": 0, "itself": [0, 16], "within": [0, 2, 4, 16, 24], "requir": [0, 2, 16, 20, 24], "toolbar": 0, "also": [0, 3, 15, 16], "hidden": 0, "view": 0, "access": [0, 2, 6, 16, 18, 22, 24, 31], "right": [0, 20], "click": 0, "desktop": 0, "taskbar": 0, "icon": 0, "www": 0, "ucar": [0, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "edu": [0, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "local": [0, 16, 20], "manag": [0, 16, 33], "support": [0, 2, 3, 4, 33], "suit": 0, "fundament": 0, "compris": 0, "internet": 0, "idd": 0, "provid": [0, 2, 16, 24, 31, 33], "grid": [0, 2, 4, 6, 9, 16, 19, 20, 23, 24, 26, 27, 28, 29, 31, 32], "surfac": [0, 16, 19, 22, 23, 29, 32], "observ": 0, "upper": [0, 22, 32], "air": [0, 22, 32], "profil": [0, 16, 22, 25, 30], "satellit": [0, 16, 20, 22, 32], "radar": [0, 2, 4, 10, 16, 22, 32], "imageri": [0, 20, 22, 27, 32], "meteorolog": [0, 33], "dataset": [0, 22, 24, 33], "directli": [0, 17, 20, 23, 24], "avail": [0, 2, 6, 16, 18, 19, 20, 21, 24, 31], "edex_ldm": 0, "invok": 0, "ldmd": 0, "conf": 0, "post": 0, "apach": 0, "org": [0, 23, 31], "queue": 0, "processor": 0, "interfac": [0, 23, 31], "daemon": 0, "facilit": 0, "between": [0, 16, 18, 19, 20, 31], "receiv": 0, "emploi": 0, "ha": [0, 16, 20, 23, 24, 31], "finish": 0, "further": 0, "qpidd": 0, "known": [0, 20, 33], "relat": [0, 17], "dbm": 0, "retriev": [0, 4, 6, 30], "tabl": [0, 28], "some": [0, 16, 22], "read": [0, 18, 22], "mai": [0, 16, 18, 20, 28, 33], "queri": [0, 16, 19, 20, 24], "termain": 0, "base": [0, 6, 16, 17, 20, 24, 25, 26, 29, 31], "front": 0, "psql": 0, "edex_postgr": 0, "hdfgroup": 0, "hierarch": 0, "format": [0, 21, 22], "v": [0, 19, 23, 25, 28, 30], "5": [0, 21, 25, 26, 27, 28, 29], "similar": [0, 16, 17, 31], "netcdf": [0, 20], "multipl": [0, 16, 20, 22, 24, 28], "singl": [0, 2, 16, 19, 20, 22, 24, 28], "For": [0, 16, 17, 20, 22, 24, 30], "exampl": [0, 2, 15, 16, 18, 20, 22, 24, 25, 26, 29, 30, 31], "volum": 0, "scan": [0, 15, 26], "reflect": [0, 26], "veloc": [0, 26], "well": [0, 16, 18, 23, 31, 33], "deriv": [0, 16, 26, 29], "composit": [0, 20, 26, 29], "python": [0, 2, 3, 16, 17, 18, 20, 22, 23, 24, 28, 29, 31], "isol": 0, "enhanc": [0, 26], "wa": [0, 16, 19, 28], "creat": [0, 2, 16, 17, 18, 19, 20, 21, 23, 25, 27, 28, 30, 33], "e": [0, 16, 25, 28, 29], "sens": 0, "function": [0, 16, 22, 28], "being": [0, 4, 16, 31], "written": [0, 16, 19, 20], "sent": [0, 17], "implement": [0, 2], "part": [0, 16], "1": [0, 15, 19, 21, 25, 26, 27, 28, 29, 30], "2": [0, 15, 19, 25, 26, 27, 28, 29, 30], "logger": 0, "coordin": [0, 9, 16, 18], "log": [0, 25, 30], "awip": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "dataaccess": [1, 2, 4, 6, 7, 8, 9, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "getavailabletim": [1, 2, 12, 15, 16, 18, 19, 20, 21, 22, 25, 26, 27, 29, 30], "reftimeonli": [1, 2, 12], "fals": [1, 2, 18, 20, 23, 24, 26, 28, 29, 31], "changeedexhost": [2, 6, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "newhostnam": 2, "chang": [2, 6, 16, 24], "edex": [2, 6, 15, 16, 18, 19, 21, 25, 26, 27, 28, 29, 30, 33], "host": [2, 5, 6, 11, 12, 30], "framework": [2, 6], "nativ": [2, 3, 16, 20], "otherwis": 2, "method": [2, 16, 20, 22, 31], "throw": [2, 16], "typeerror": [2, 3, 23], "arg": [2, 3, 4, 6, 7, 8, 10, 16, 18], "connect": [2, 6], "getavailablelevel": [2, 12, 15, 19, 22, 26], "get": [2, 4, 7, 8, 9, 10, 16, 17, 18, 19, 24, 28, 29, 30], "match": [2, 16], "actual": [2, 16, 20, 31], "find": [2, 22, 31], "return": [2, 3, 4, 6, 7, 8, 9, 10, 15, 16, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "list": [2, 4, 6, 7, 8, 16, 19, 21, 23, 25, 26, 29], "string": [2, 4, 7, 8, 9, 10, 16, 19, 23, 31], "getavailablelocationnam": [2, 12, 15, 16, 20, 22, 25, 26, 29, 30], "locat": [2, 4, 7, 16, 18, 21, 24, 30, 31], "getavailableparamet": [2, 12, 15, 21, 22, 26, 28, 29, 31], "paramet": [2, 4, 6, 8, 9, 12, 16, 18, 19, 28, 30, 31, 32], "time": [2, 3, 6, 7, 12, 15, 16, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30], "idatarequest": [2, 14, 16, 20, 23, 31], "option": [2, 6, 16, 22, 29, 31], "true": [2, 15, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 31], "uniqu": [2, 23, 31], "reftim": [2, 20, 25, 31], "should": [2, 16], "forecasthr": 2, "datatim": [2, 6, 16, 20, 22, 30], "getforecastrun": [2, 15, 18, 19, 22, 25, 27], "cycl": [2, 15, 17, 18, 19, 20, 22, 23, 25, 26, 27, 31], "latest": [2, 19, 29, 31], "object": [2, 3, 4, 6, 16, 30], "respons": [2, 15, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31], "refer": [2, 4, 16, 20, 22, 24, 25, 31], "arrai": [2, 9, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 28, 30, 31], "getgeometrydata": [2, 12, 15, 16, 17, 21, 22, 23, 24, 25, 28, 30, 31], "geometri": [2, 4, 8, 16, 17, 19, 24, 27, 28], "specifi": [2, 6, 8, 16, 20, 22, 24], "each": [2, 16, 17, 20, 23, 24, 25, 28, 31], "combin": [2, 16, 20, 24], "igeometrydata": [2, 16], "timerang": [2, 3, 6, 16, 17, 19, 23, 28, 31], "none": [2, 5, 6, 7, 9, 12, 18, 20, 23, 24, 27, 28, 29, 31], "agnost": [2, 16], "getgriddata": [2, 12, 15, 16, 18, 20, 22, 24, 26, 27, 29], "igriddata": [2, 16], "getidentifiervalu": [2, 12, 15, 20, 21, 29], "identifierkei": [2, 12], "valu": [2, 4, 7, 8, 11, 16, 17, 20, 23, 24, 25, 27, 28, 31], "particular": [2, 16], "identifi": [2, 4, 16, 18, 20, 24, 29], "datatyp": [2, 4, 12, 18, 20, 21, 22, 24, 28, 29], "getmetarob": [2, 17, 28], "ob": [2, 4, 15, 16, 17, 21, 22, 23, 24, 25, 30, 31, 32], "dictionari": [2, 4, 6, 28, 31], "special": [2, 16], "consider": 2, "multi": 2, "presweath": [2, 28], "skycov": [2, 23, 28], "skylayerbas": [2, 28], "dal": 2, "getgeometri": [2, 8, 15, 16, 21, 24, 25, 28, 31], "metar": [2, 16, 17, 32], "getoptionalidentifi": [2, 12, 20, 29], "getradarproductid": [2, 26], "availableparm": [2, 21, 26], "numer": 2, "idetifi": 2, "nexrad3": 2, "full": [2, 15, 16, 22, 24, 29, 30, 31], "filter": [2, 22, 28], "getradarproductnam": [2, 26], "getrequiredidentifi": [2, 12], "must": [2, 3, 16, 20, 25], "set": [2, 4, 16, 17, 18, 20, 24, 29, 30, 31], "succe": 2, "getsupporteddatatyp": [2, 12, 22], "getsynopticob": [2, 28], "sfcob": [2, 16, 22], "synop": [2, 16], "newdatarequest": [2, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "kwarg": [2, 12], "new": [2, 17, 18, 20, 23, 24, 25, 27, 28, 31, 33], "instanc": [2, 6, 20, 22, 23], "suitabl": 2, "runtim": 2, "exist": [2, 16, 17, 20, 24], "sole": 2, "conveni": [2, 16], "locationnam": [2, 4, 12, 16, 18], "envelop": [2, 4, 12, 16, 17, 18, 19, 24, 27, 28], "limit": [2, 16, 17, 20, 28], "leftov": 2, "setlazyloadgridlatlon": [2, 12], "lazyloadgridlatlon": [2, 12], "hint": 2, "indic": [2, 16], "whether": [2, 20, 31], "load": 2, "lat": [2, 6, 9, 15, 16, 17, 18, 19, 20, 22, 24, 26, 27, 28, 29, 31], "lon": [2, 6, 9, 15, 16, 17, 18, 19, 20, 22, 24, 26, 27, 28, 29, 31], "immedi": 2, "wait": 2, "until": 2, "need": [2, 16, 18, 20, 22, 23, 24, 31, 33], "perform": [2, 3, 6, 16, 19], "tune": [2, 16], "affect": [2, 17], "wai": [2, 16, 23, 27, 31], "depend": [2, 16, 20, 22, 24], "intern": 2, "might": [2, 22, 33], "ignor": [2, 16, 17, 25, 26, 28], "certain": [2, 16], "condit": 2, "met": [2, 16], "It": [2, 16, 31], "could": [2, 16, 20], "guarante": 2, "would": [2, 16, 31], "better": 2, "overhead": 2, "gener": [2, 16, 27], "out": [2, 16, 22, 23, 28, 31, 33], "dure": [2, 18, 31], "initi": [2, 30], "boolean": [2, 10, 23, 31], "lazi": 2, "constructtimerang": 3, "build": [3, 16, 30], "dynamicseri": [3, 17, 18, 23, 28, 31], "given": [3, 6, 22], "argument": 3, "pair": [3, 6, 17], "convert": [3, 16, 18, 19, 20, 28, 31], "datetim": [3, 10, 17, 19, 20, 21, 23, 25, 28, 29, 31], "converttodatetim": 3, "timearg": 3, "represent": 3, "like": [3, 16, 22], "struct_tim": 3, "date": 3, "timestamp": 3, "rais": [3, 19], "convers": 3, "repres": [3, 16], "float": [3, 8, 16, 17, 19, 20, 23, 28], "int": [3, 8, 16, 17, 23, 24, 27, 28], "long": [3, 8, 16], "same": [3, 16, 20, 24, 28, 29], "pass": [3, 16, 20, 28], "class": [4, 5, 7, 8, 9, 11, 12, 16, 19, 22, 26], "submit": 4, "dataaccesslay": [4, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "__weakref__": 4, "weak": 4, "defin": [4, 22, 23, 24, 29, 31], "abstract": [4, 16], "addidentifi": [4, 15, 16, 20, 21, 24, 25, 28, 29], "kei": [4, 6, 7, 16, 31], "add": [4, 16, 17, 20, 23, 30, 31], "getdatatyp": [4, 16], "getenvelop": [4, 16], "rectangular": [4, 16], "shape": [4, 8, 15, 16, 17, 19, 22, 24, 26, 27, 28, 29, 31], "getidentifi": [4, 16], "getlevel": [4, 7, 16, 18, 26], "getlocationnam": [4, 7, 15, 16, 18, 22, 25, 26, 27], "setdatatyp": [4, 15, 16, 18, 20, 22, 29, 30, 31], "setenvelop": [4, 16], "env": [4, 16, 18, 33], "If": [4, 6, 16, 18, 19, 20, 22, 23, 31, 33], "factori": 4, "constrain": 4, "setlevel": [4, 15, 16, 18, 22, 26, 27], "Not": [4, 16, 22], "abbrevi": [4, 8, 9], "setlocationnam": [4, 15, 16, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30], "setparamet": [4, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "param": [4, 8, 16, 17, 22, 23, 28, 31], "port": [5, 11], "site": [5, 15, 18, 22, 24, 25], "prognam": 5, "commitgrid": 5, "getgridinventori": 5, "parmid": 5, "getparmlist": 5, "pid": 5, "getselecttr": 5, "getsiteid": 5, "getsound": [6, 19], "modelnam": [6, 16, 19], "weatherel": 6, "samplepoint": 6, "seri": [6, 21], "sound": [6, 22, 32], "model": [6, 18, 22, 29, 32], "datasetid": [6, 16], "basi": 6, "sampl": [6, 24], "element": [6, 9, 22, 23], "hour": [6, 23, 26, 29, 31], "_soundingcub": 6, "act": 6, "3": [6, 19, 25, 26, 27, 28, 29, 30], "tier": 6, "final": [6, 17, 18, 20, 23, 31], "datarecord": 7, "getattribut": [7, 16, 21], "attribut": [7, 16, 21, 23, 24], "valid": [7, 18, 26, 27], "getdatatim": [7, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31], "geodatarecord": 8, "getnumb": [8, 16, 23, 24, 25, 28, 30], "getparamet": [8, 9, 16, 18, 22, 23, 25, 26, 29, 30], "getstr": [8, 16, 23, 24, 28, 30, 31], "gettyp": [8, 16], "doubl": 8, "getunit": [8, 9, 16, 22, 26, 30], "unit": [8, 9, 16, 17, 19, 22, 23, 25, 26, 27, 28, 30], "griddatarecord": 9, "nx": [9, 12], "ny": [9, 12], "latlongrid": 9, "latlondeleg": 9, "getlatloncoord": [9, 15, 18, 22, 24, 26, 27, 29], "tupl": 9, "where": [9, 16, 19, 20, 22, 25, 27, 31], "first": [9, 16, 17, 20, 21, 23, 24, 29, 31], "numpi": [9, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31], "second": [9, 22, 29, 31], "getrawdata": [9, 15, 16, 18, 20, 22, 24, 26, 27, 29], "encode_dep_v": 10, "depval": 10, "encode_radi": 10, "azval": 10, "encode_thresh_v": 10, "threshval": 10, "get_data_typ": 10, "azdat": 10, "radial": 10, "raster": 10, "get_datetime_str": 10, "record": [10, 16, 17, 19, 23, 24, 28, 30, 31], "get_hdf5_data": [10, 15], "idra": [10, 15], "get_head": 10, "headerformat": 10, "xlen": 10, "ylen": 10, "descript": [10, 31], "9581": 11, "uri": 11, "sendrequest": 11, "thrift": 11, "except": [11, 16, 22, 23, 25, 28], "thriftrequestexcept": 11, "lazygridlatlon": 12, "crswkt": 12, "localhost": 12, "getnotificationfilt": 12, "determinedrtoffset": 13, "timestr": 13, "maketim": 13, "pydata": 14, "pygriddata": [14, 18, 24], "pygeometrydata": 14, "modelsound": [14, 19, 22, 25], "thriftclientrout": 14, "thriftclient": [14, 16, 19], "timeutil": 14, "radarcommon": [14, 15], "ifpclient": 14, "datetimeconvert": 14, "combinedtimequeri": 14, "index": [14, 29], "contrust": [15, 29], "tree": [15, 29], "cloud": [15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "unidata": [15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "creatingent": [15, 20, 29], "print": [15, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 31], "availablesector": [15, 29], "sort": [15, 21, 22, 25, 26, 29, 30, 31], "sector": [15, 20, 27], "availableproduct": [15, 28, 29], "point": [15, 16, 19, 20, 21, 22, 24, 25, 27], "65": [15, 17, 25, 27, 31], "65293884277344": 15, "16": [15, 17, 18, 21, 22, 25, 26, 27, 28, 31], "94915580749512": 15, "glm": 15, "glmgr": [15, 21], "intens": [15, 21], "10": [15, 17, 19, 20, 23, 26, 27, 28, 29, 30, 31], "geom": [15, 25, 28, 31], "rap13": [15, 18, 22], "t": [15, 16, 18, 20, 22, 25, 30], "0fhag": [15, 18, 19, 22], "fcstrun": [15, 18, 19, 22, 25, 27], "multipolygon": [15, 24, 28, 31], "polygon": [15, 16, 17, 19, 24, 27, 28, 31], "92": [15, 28, 29], "092348410": 15, "46": 15, "782322971": 15, "90": [15, 21, 22], "948581075": 15, "992865960": 15, "274543999": 15, "652773000": 15, "280511999": 15, "656933000": 15, "285491999": 15, "660741000": 15, "phensig": 15, "50": [15, 19, 22, 23, 24, 26, 27], "poli": [15, 31], "pd": 15, "getvalidperiod": [15, 25], "ref": [15, 16, 31], "getreftim": [15, 18, 19, 20, 21, 22, 25, 26, 27, 29, 30, 31], "kmhx": [15, 25, 26], "digit": [15, 26], "hybrid": [15, 26], "refl": [15, 26], "availablelevel": [15, 19, 26], "have": [16, 22, 23, 28, 31, 33], "those": [16, 17, 20, 24], "custom": [16, 23], "individu": [16, 20], "plug": 16, "ins": 16, "pertin": 16, "often": 16, "dataplugin": [16, 18], "alwai": 16, "clean": [16, 19], "both": [16, 18, 21, 24, 26], "cave": [16, 17, 33], "s": [16, 17, 18, 19, 20, 22, 23, 24, 25, 27, 28, 29, 31, 33], "idatafactori": 16, "eas": 16, "been": [16, 20], "choos": 16, "unsupportedoutputtypeexcept": 16, "let": [16, 18, 20], "know": [16, 18, 20, 23], "come": [16, 17, 20, 23, 24, 31], "helper": 16, "make": [16, 17, 18, 28], "easier": 16, "plugindataobject": 16, "abstractdatapluginfactori": 16, "everyth": 16, "scratch": 16, "manner": 16, "felt": 16, "necessari": [16, 23, 24, 31], "power": [16, 29], "mean": 16, "doe": [16, 25], "anyth": 16, "underli": 16, "To": [16, 17, 20], "satellitegridfactori": 16, "radargridfactori": 16, "correspond": [16, 31], "what": [16, 19, 20, 22, 23, 31], "binoffset": 16, "abov": [16, 18, 19, 22, 24, 31], "bin": 16, "offset": [16, 20, 24], "note": [16, 17, 18, 19, 20, 22, 23, 24, 31], "preced": 16, "timeagnosticdataexcept": 16, "There": [16, 19], "rang": [16, 17, 20, 21, 23, 26, 28, 31], "incompatiblerequestexcept": 16, "thrown": 16, "ad": [16, 18, 28, 31], "spring": 16, "bean": 16, "id": [16, 20, 23, 24, 29, 30], "uf": [16, 17, 18, 23, 28, 31], "dataaccessregistri": 16, "factorymethod": 16, "constructor": 16, "registri": 16, "more": [16, 17, 18, 20, 22, 23, 31], "divers": 16, "layer": [16, 22, 26], "current": [16, 31], "veri": [16, 31], "want": [16, 17, 20, 22, 23, 31], "bundl": 16, "manifest": 16, "mf": 16, "import": [16, 19, 21, 25, 26, 27, 28, 29, 30], "req": 16, "2fhag": [16, 22], "info": 16, "gfs40": 16, "idata": 16, "defaultdatarequest": [16, 18], "futur": 16, "implent": 16, "found": [16, 17, 19, 22, 26, 28], "section": [16, 23, 24, 31], "case": [16, 18, 20, 22, 24, 25, 30], "mathemat": 16, "angl": 16, "height": [16, 18, 20, 21, 22, 24, 29, 30], "fine": 16, "respect": [16, 18], "languag": 16, "py": [16, 18, 33], "becaus": [16, 20, 22, 23, 24, 25, 28, 30], "best": 16, "undocu": 16, "hazard": 16, "technic": 16, "baselin": 16, "2016": 16, "hydro": 16, "shef": 16, "acar": [16, 22], "airep": [16, 22], "pirep": [16, 22], "map": [16, 17, 22, 23, 27, 28, 29, 31, 32], "you": [16, 18, 20, 22, 28, 30, 31, 33], "look": [16, 18, 20, 22, 24, 31], "binlightn": [16, 21, 22], "sfc": [16, 29], "ffmp": 16, "bufrua": [16, 22, 30], "moddelsound": 16, "ldadmesonet": 16, "pointdata": 16, "hierarchi": 16, "abstractgriddatapluginfactori": 16, "abstractgeometrydatabasefactori": 16, "abstractgeometrytimeagnosticdatabasefactori": 16, "content": 16, "document": [16, 22], "attach": [16, 23, 28], "slightli": [16, 23], "geospati": 16, "river": 16, "gage": 16, "basin": 16, "airmet": 16, "hide": 16, "detail": [16, 22, 31], "worri": 16, "about": [16, 22], "structur": 16, "suggest": 16, "one": [16, 18, 20, 22, 23, 24, 31], "below": [16, 17, 20, 22, 23, 24, 31, 33], "definit": [16, 24, 31], "expand": 16, "dream": 16, "up": [16, 20, 24, 33], "interpret": [16, 18], "state": [16, 17, 20, 23, 24, 28, 29], "counti": [16, 24, 28], "zone": 16, "db": 16, "ihf": 16, "warn": [16, 17, 18, 22, 24, 25, 26, 28, 32], "ccfp": 16, "around": [16, 17, 18], "concept": 16, "interact": 16, "expect": 16, "them": [16, 17, 23, 28], "automat": 16, "rest": [16, 24, 28], "rout": 16, "style": [16, 31], "architectur": 16, "effect": 16, "enabl": [16, 24], "capabl": 16, "alter": 16, "increment": [16, 19, 25, 30], "becom": [16, 24], "break": 16, "api": 16, "plan": 16, "retrofit": 16, "cosd": 16, "ideal": 16, "improv": 16, "maintain": 16, "pecif": 16, "hook": 16, "idatastor": 16, "iserverrequest": 16, "complet": 16, "understood": [16, 24], "three": [16, 20, 21, 25], "wish": [16, 20, 22], "instanti": [16, 23], "igridrequest": 16, "extend": [16, 24, 26, 30], "igeometryrequest": 16, "defaultgridrequest": 16, "defaultgeometryrequest": 16, "howev": [16, 31], "prepar": 16, "gfegriddata": 16, "vs": 16, "d2dgriddata": 16, "satellitegriddata": 16, "few": [16, 20, 22, 23, 28, 31], "distinct": 16, "project": [16, 17, 18, 20, 21, 23, 24, 26, 27, 28, 29, 31], "raw": [16, 18, 20], "latitud": [16, 17, 18, 19, 23, 24, 28], "longitud": [16, 17, 18, 19, 23, 24, 28], "pure": 16, "jep": 16, "pyjobject": 16, "wrap": 16, "goal": 16, "app": 16, "therefor": 16, "outsid": 16, "go": [16, 18, 22, 23], "familiar": 16, "scope": 16, "huge": 16, "undertak": 16, "anoth": [16, 20, 22, 24], "igridfactori": 16, "igeometryfactori": 16, "desir": [16, 20, 23], "furthermor": 16, "stack": 16, "top": [16, 17, 18, 20, 21, 22, 23, 24, 26, 29, 31], "griddatafactori": 16, "while": [16, 28, 30, 31], "calcul": [16, 18, 23, 27, 30], "befor": [16, 22, 31], "mapgeometryfactori": 16, "unsupportedoperationexcept": 16, "javadoc": 16, "obsgeometryfactori": 16, "field": [16, 24], "writer": [16, 32], "mind": 16, "reason": 16, "behavior": 16, "reduc": 16, "amount": [16, 29], "action": 16, "g": [16, 19, 20, 25, 30], "handler": [16, 25], "serverrequestrout": 16, "regardless": 16, "jvm": 16, "insid": [16, 24], "onc": [16, 22], "done": [16, 20, 31], "xml": 16, "folder": [16, 20], "word": 16, "satellitefactori": 16, "satellitefactoryregist": 16, "datafactoryregistri": 16, "everi": [16, 17], "lookup": [16, 31], "deleg": 16, "result": [16, 17], "back": 16, "caller": 16, "By": [16, 17, 20, 23, 31], "abl": [16, 17, 25], "understand": [16, 18], "avoid": 16, "continu": [16, 26, 29, 30], "essenti": 16, "useless": 16, "task": 16, "void": 16, "frequent": 16, "pluginnam": 16, "setstoragerequest": 16, "datastorag": 16, "slab": 16, "line": [16, 19, 20, 23, 24, 25, 30, 31], "faster": 16, "less": [16, 19], "getstoragerequest": 16, "No": [16, 25, 26], "bound": [16, 17, 18, 23, 24, 28, 31], "box": [16, 17, 18, 27, 31], "search": 16, "icao": 16, "airport": 16, "stationid": [16, 28], "instead": 16, "null": 16, "gridgeometry2d": 16, "getgridgeometri": 16, "datadestin": 16, "populatedata": 16, "destin": 16, "floatarraywrapp": 16, "bytebufferwrapp": 16, "memori": 16, "attempt": 16, "popul": [16, 22, 24, 31], "enum": 16, "correl": [16, 26, 31], "made": [16, 17, 20, 23, 24, 31], "getdata": 16, "replac": [16, 19], "getlatcoord": 16, "getloncoord": 16, "cell": [16, 18, 24, 31], "r": [16, 19, 20, 21, 25, 30], "igriddatafactori": 16, "subset": [16, 17], "move": 16, "don": [16, 20], "igeometrydatafactori": 16, "notebook": [17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 33], "tutori": [17, 18, 20, 22, 23, 24, 31], "gempak": [17, 25], "connnect": 17, "throughout": [17, 20, 22, 23, 24, 31], "subsequ": [17, 18, 20, 23, 24], "dstype": [17, 18, 23, 28, 31], "timedelta": [17, 19, 23, 28, 31], "np": [17, 19, 20, 21, 23, 25, 26, 27, 28, 29, 30, 31], "cartopi": [17, 18, 20, 21, 22, 23, 24, 26, 27, 28, 29, 31], "cr": [17, 18, 20, 21, 23, 24, 26, 27, 28, 29, 31], "ccr": [17, 18, 20, 21, 23, 24, 26, 27, 28, 29, 31], "matplotlib": [17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31], "pyplot": [17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31], "plt": [17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31], "metpi": [17, 19, 27, 28, 30, 32], "stationplot": [17, 23, 28], "continent": [17, 18], "conu": [17, 20, 24, 27, 29], "we": [17, 18, 20, 22, 23, 24, 25, 28, 31], "optim": 17, "bbox": [17, 18, 19, 24, 26, 27, 28, 29, 31], "130": 17, "70": 17, "15": [17, 19, 21, 25, 27, 29, 30], "55": [17, 22], "0": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "establish": [17, 20, 23, 24, 31], "With": [17, 20, 23, 24, 31], "just": [17, 22, 23, 31, 33], "edexserv": [17, 21, 23, 28], "stationnam": [17, 23, 28], "our": [17, 18, 19, 20, 22, 23, 24, 27, 28, 29, 31, 33], "so": [17, 18, 20, 22, 23, 31], "last": [17, 22, 31], "minut": [17, 28, 29], "kept": 17, "variabl": [17, 20, 23, 28, 31], "lasthourdatetim": [17, 23, 28, 31], "utcnow": [17, 23, 28, 29, 31], "strftime": [17, 23, 28, 31], "y": [17, 18, 19, 21, 23, 24, 25, 27, 28, 29, 31], "m": [17, 19, 23, 25, 26, 28, 29, 30, 31], "h": [17, 19, 20, 23, 25, 28, 29, 30, 31], "beginrang": [17, 23, 28, 31], "strptime": [17, 23, 28, 29, 31], "endrang": [17, 23, 28, 31], "str": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "len": [17, 18, 19, 24, 26, 28, 29, 31], "total": [17, 21, 24, 26, 27, 29], "1704": 17, "1660": 17, "degre": [17, 18, 23, 28], "celsiu": 17, "c": [17, 18, 19, 23, 25, 30, 33], "fahreheit": 17, "f": [17, 18, 22, 25, 30, 33], "suppress": [17, 28], "nan": [17, 23, 26, 28, 29, 30], "mask": [17, 28], "filterwarn": [17, 25, 26, 28], "categori": [17, 24, 25, 26, 28, 29, 31], "runtimewarn": [17, 25, 26, 28], "tair": 17, "dtype": [17, 19, 23, 28], "9999": [17, 23, 27, 28, 30], "8": [17, 18, 23, 25, 27, 28, 29], "32": [17, 19, 26, 27, 28, 29], "order": [17, 18, 19, 24, 31, 33], "distinguish": 17, "ll": [17, 18, 22, 23, 24, 31, 33], "tip": [17, 20, 24], "try": [17, 22, 23, 25, 28], "plai": [17, 18], "how": [17, 18, 22, 23, 31, 33], "purpl": 17, "25": [17, 22, 27], "35": [17, 22, 23, 28, 29], "royalblu": 17, "45": [17, 19, 22, 27, 29], "darkgreen": [17, 23, 28], "green": 17, "75": [17, 20, 27], "orang": [17, 24], "85": [17, 27, 31], "here": [17, 18, 20, 22, 23, 24, 25, 28, 31], "segement": 17, "relev": [17, 22], "draw": [17, 20, 23, 25, 27, 30], "segment": 17, "produc": [17, 18, 31], "figur": [17, 18, 19, 20, 23, 25, 29, 30, 31], "fig": [17, 18, 20, 21, 23, 24, 26, 27, 28, 29, 31], "ax": [17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31], "subplot": [17, 18, 21, 24, 26, 27, 28, 29, 31], "figsiz": [17, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31], "12": [17, 19, 22, 24, 25, 27, 28, 29, 30, 31], "subplot_kw": [17, 18, 21, 24, 26, 27, 28, 29, 31], "dict": [17, 18, 21, 23, 24, 26, 27, 28, 29, 31], "lambertconform": [17, 23, 28], "set_ext": [17, 18, 23, 24, 26, 27, 28, 29, 31], "coastlin": [17, 18, 20, 21, 23, 24, 26, 27, 29, 31], "resolut": [17, 18, 20, 21, 24, 26, 27, 29], "50m": [17, 18, 20, 21, 24, 26, 27, 29, 31], "set_titl": [17, 21, 23, 28], "degf": [17, 23, 28, 30], "item": [17, 30, 31], "subtair": 17, "copi": 17, "down": 17, "max": [17, 18, 19, 24, 25, 26, 27, 29, 30], "elif": [17, 19, 20, 23, 28, 31], "min": [17, 18, 19, 24, 26, 27, 29], "els": [17, 19, 20, 22, 23, 26, 27, 28, 31], "station": [17, 28, 30, 32], "transform": [17, 20, 21, 23, 24, 27, 28], "platecarre": [17, 18, 21, 23, 24, 26, 27, 28, 29, 31], "fontsiz": [17, 23, 28, 31], "14": [17, 19, 20, 22, 25, 26, 27, 29, 31], "plot_paramet": 17, "compar": [18, 31], "librari": [18, 23, 31], "mpl": [18, 21, 24, 26, 27, 28, 29, 31], "gridlin": [18, 20, 21, 24, 26, 27, 28, 29, 31], "longitude_formatt": [18, 21, 24, 26, 27, 28, 29, 31], "latitude_formatt": [18, 21, 24, 26, 27, 28, 29, 31], "scipi": 18, "constant": [18, 25, 30], "convert_temperatur": 18, "train": 18, "url": [18, 22], "temperatur": [18, 19, 22, 23, 25, 28, 30, 32], "fix": [18, 22], "ground": [18, 21, 22], "meter": [18, 22, 24], "0x11127bfd0": 18, "mani": [18, 23, 24, 28, 31], "variant": 18, "recent": [18, 23, 30], "74": [18, 27], "easiest": [18, 31], "logic": [18, 24, 31], "axi": [18, 31], "boundari": [18, 20, 22, 28], "along": [18, 22, 24, 31], "def": [18, 20, 23, 24, 26, 27, 28, 29, 31], "9": [18, 25, 27, 29], "gl": [18, 24, 26, 28, 29, 31], "draw_label": [18, 24, 26, 28, 29, 31], "top_label": [18, 24, 26, 28, 29, 31], "right_label": [18, 24, 26, 28, 29, 31], "xformatt": [18, 24, 26, 28, 29, 31], "yformatt": [18, 24, 26, 28, 29, 31], "previou": [18, 24, 31], "kelvin": [18, 19, 28], "farenheit": 18, "temp": [18, 23, 25, 28, 29], "destunit": 18, "k": [18, 22, 25, 30], "show": [18, 19, 21, 22, 23, 25, 26, 29, 30, 31], "scale": [18, 24, 29, 31], "cs": [18, 24, 26, 27, 29], "colorbar": [18, 24, 26, 27, 29], "cbar": [18, 24, 26, 27, 29], "label": [18, 31], "appear": [18, 24], "background": 18, "okai": 18, "awai": 18, "cmap": [18, 20, 24, 26, 27, 29], "get_cmap": [18, 24, 26, 27], "rainbow": [18, 26, 27], "shrink": [18, 24, 26, 27, 29], "7": [18, 19, 20, 25, 26, 27, 29], "orient": [18, 24, 26, 27, 29], "horizont": [18, 24, 26, 27, 29], "set_label": [18, 24, 26, 27, 29], "scarter": [18, 20], "opt": 18, "miniconda3": 18, "python3": [18, 33], "lib": 18, "geoax": 18, "1598": 18, "userwarn": 18, "input": 18, "monoton": 18, "increas": [18, 31], "decreas": 18, "lead": 18, "incorrectli": 18, "edg": 18, "pleas": [18, 33], "suppli": 18, "explicit": 18, "shade": 18, "self": 18, "_pcolorarg": 18, "cs2": 18, "cbar2": 18, "fig2": 18, "ax2": 18, "80": [18, 24, 26, 28, 29], "vmin": 18, "vmax": 18, "isobar": 19, "select": [19, 20, 23, 24, 26], "104": [19, 29], "67": [19, 25], "39": [19, 27, 29], "87": [19, 27, 28, 29], "dpt": [19, 22, 28], "uw": [19, 22], "vw": [19, 22], "pressur": [19, 25, 29, 30], "pai": 19, "attent": 19, "switch": [19, 31], "nam": [19, 25], "40km": 19, "dewpoint": [19, 23, 28, 30], "wind": [19, 21, 22, 23, 25, 28, 30], "inlin": [19, 21, 25, 26, 27, 28, 29, 30], "plot": [19, 20, 21, 22, 24, 25, 26, 30], "skewt": [19, 30], "hodograph": [19, 30], "mpl_toolkit": [19, 25, 30], "axes_grid1": [19, 25, 30], "inset_loc": [19, 25, 30], "inset_ax": [19, 25, 30], "math": [19, 25, 30], "sqrt": 19, "wkb": 19, "timeit": 19, "nam40": [19, 22, 27], "parm": [19, 22, 25], "inc": [19, 27], "005": 19, "timereq": 19, "2018": [19, 26, 29], "00": [19, 22, 23, 25], "u": [19, 23, 25, 28, 30], "use_parm": 19, "use_level": 19, "sndobject": 19, "_datadict": 19, "append": [19, 21, 23, 24, 25, 28, 30, 31], "1f": [19, 28], "mb": [19, 22, 30], "valueerror": [19, 28], "empti": [19, 23], "join": 19, "836": 19, "4mb": 19, "levelreq": 19, "fhag": 19, "lvl": [19, 22], "_": 19, "IS": 19, "rather": 19, "273": [19, 25, 30], "degc": [19, 23, 25, 28, 30], "knot": [19, 23, 25, 28, 30], "w": [19, 20, 29, 31], "4": [19, 25, 27, 28, 29], "0mb": [19, 22], "rcparam": [19, 25, 30], "rotat": 19, "linewidth": [19, 20, 23, 24, 25, 27, 28, 30], "plot_barb": [19, 25, 30], "plot_dry_adiabat": 19, "plot_moist_adiabat": 19, "plot_mixing_lin": 19, "linestyl": [19, 20, 24, 25, 28, 29, 30], "set_ylim": [19, 25, 30], "1000": [19, 22, 23, 25, 30], "set_xlim": [19, 25, 30], "40": [19, 22, 25], "titl": [19, 23, 25, 30, 31], "ax_hod": [19, 25, 30], "loc": [19, 25, 30, 31], "component_rang": [19, 25, 30], "magnitud": 19, "add_grid": [19, 25, 30], "20": [19, 23, 25, 26, 27, 29, 30, 31], "plot_colormap": [19, 25, 30], "dot": [19, 30], "0c": 19, "isotherm": [19, 25, 30], "l": [19, 20, 22, 25, 29, 30], "axvlin": [19, 25, 30], "color": [19, 20, 22, 23, 24, 25, 28, 30, 31, 32], "cmc": [19, 22], "gfs20": [19, 22], "100": [19, 22, 25, 30], "848": 19, "6mb": 19, "19": [19, 22, 26, 29], "6": [19, 25, 27, 28, 29], "18": [19, 21, 26, 27, 28, 29], "1mb": 19, "22": [19, 21, 24, 27], "837": 19, "7mb": 19, "goes16": 20, "resiz": 20, "band": 20, "channel": 20, "rgb": 20, "featur": [20, 21, 23, 24, 28, 29, 31], "cfeat": [20, 21, 29], "extent": [20, 21, 24, 29], "econu": [20, 29], "wconu": 20, "globe": 20, "semimajor_axi": 20, "6378137": 20, "semiminor_axi": 20, "6356752": 20, "ellips": 20, "sat_h": 20, "35785830": 20, "proj": [20, 23, 28], "geostationari": [20, 32], "central_longitud": [20, 21, 23, 28], "satellite_height": 20, "sweep_axi": 20, "coord": 20, "origin": 20, "3626751": 20, "1382263": 20, "1583666": 20, "4588674": 20, "dimens": 20, "pixel": 20, "size": [20, 26, 29, 31], "inch": [20, 27, 28], "confus": 20, "pad": [20, 31], "exact": 20, "buffer": [20, 24, 28], "width": 20, "dpi": 20, "get_dpi": 20, "gca": 20, "remov": [20, 31], "subplotpar": 20, "left": [20, 30], "b": [20, 22, 23, 25], "bottom": [20, 31], "figw": 20, "figh": 20, "set_size_inch": 20, "write_imag": 20, "next": [20, 23, 28, 31], "footnot": 20, "Then": [20, 23, 31], "onto": 20, "addition": [20, 23], "short": 20, "disk": 20, "5000x4000": 20, "feel": [20, 33], "keep": [20, 23, 24, 31], "ratio": [20, 25], "though": 20, "px_width": 20, "5000": [20, 22, 24], "px_height": 20, "3000": [20, 22], "proper": 20, "imshow": 20, "grai": 20, "magenta": 20, "add_featur": [20, 23, 24, 28, 29, 31], "edgecolor": [20, 24, 27, 28, 31], "cyan": 20, "xloc": 20, "arang": 20, "180": [20, 29], "footnotestr": 20, "annot": [20, 24], "xycoord": 20, "fraction": [20, 23, 28], "textcoord": [20, 24], "va": 20, "savefig": 20, "bbox_inch": 20, "tight": 20, "pad_inch": 20, "exactli": 20, "loop": [20, 23, 31], "pick": [20, 22], "east": [20, 29], "cldsnow": 20, "dbrdust": 20, "geocolr": 20, "rbg": 20, "gather": [20, 23, 31], "ch1": 20, "ch": [20, 29], "01": [20, 22, 29], "47um": [20, 29], "ch2": 20, "02": [20, 29], "64um": [20, 29], "ch3": 20, "03": [20, 29], "87um": [20, 29], "directori": 20, "live": 20, "whereev": 20, "fulli": 20, "qualifi": 20, "longer": [20, 23, 31], "outputdir": 20, "test_dir": 20, "check": [20, 31], "makedir": 20, "reset": 20, "hasn": 20, "proce": 20, "pull": [20, 23, 31], "grab": [20, 23, 28], "png": 20, "clip": 20, "dstack": 20, "rgbname": 20, "2021": [20, 22], "05": [20, 26, 29], "28": [20, 27, 28, 29], "06": [20, 22, 29], "51": [20, 26, 27, 29], "56": [20, 26, 29], "432x288": 20, "quick": 20, "guid": 20, "debra": 20, "dust": 20, "snow": [20, 22], "geocolor": 20, "board": 21, "spacecraft": 21, "flown": 21, "orbit": 21, "detect": 21, "light": 21, "emit": 21, "dai": [21, 29], "night": 21, "collect": 21, "frequenc": 21, "discharg": 21, "instrument": 21, "measur": 21, "aid": 21, "storm": [21, 26], "wide": 21, "impact": 21, "phenomena": [21, 31], "hailstorm": 21, "microburst": 21, "tornado": 21, "hurrican": 21, "flash": 21, "flood": [21, 31], "snowstorm": 21, "fire": 21, "glmev": 21, "event": 21, "glmfl": 21, "group": [21, 24, 31], "seven": 21, "msgtype": 21, "pulsecount": 21, "pulseindex": 21, "sensorcount": 21, "striketyp": 21, "glm_point": 21, "marker": [21, 24, 27], "orthograph": 21, "scatter": [21, 24, 27], "facecolor": [21, 24, 27, 28, 29, 31], "text": 21, "oct": 21, "07": [21, 29], "gmt": [21, 25], "cover": [22, 23, 25], "investig": 22, "global": 22, "forcast": 22, "gf": [22, 25], "talk": 22, "quit": 22, "bit": 22, "util": 22, "onlin": 22, "help": [22, 23, 31], "your": 22, "edex_url": 22, "offer": 22, "bufrmosavn": 22, "bufrmoseta": 22, "bufrmosgf": 22, "bufrmoshpc": 22, "bufrmoslamp": 22, "bufrmosmrf": 22, "climat": 22, "common_obs_spati": 22, "gfeeditarea": 22, "practicewarn": 22, "radar_spati": 22, "topo": [22, 24], "now": [22, 23, 24, 27, 28, 31], "mrm": 22, "grid_request": 22, "geograph": [22, 24, 33], "nw": [22, 23, 25, 28, 31], "although": 22, "someth": [22, 31], "output": 22, "grid_loc": 22, "autosp": 22, "estof": 22, "etss": 22, "ffg": 22, "alr": 22, "fwr": 22, "krf": 22, "msr": 22, "orn": 22, "ptr": 22, "rha": 22, "rsa": 22, "tar": 22, "tir": 22, "tua": 22, "fnmoc": 22, "ncoda": 22, "ww3": 22, "gfs1p0": 22, "hfr": 22, "east_6km": 22, "east_pr_6km": 22, "us_east_delaware_1km": 22, "us_east_florida_2km": 22, "us_east_north_2km": 22, "us_east_south_2km": 22, "us_east_virginia_1km": 22, "us_hawaii_1km": 22, "us_hawaii_2km": 22, "us_hawaii_6km": 22, "us_west_500m": 22, "us_west_cencal_2km": 22, "us_west_losangeles_1km": 22, "us_west_lososos_1km": 22, "us_west_north_2km": 22, "us_west_sanfran_1km": 22, "us_west_socal_2km": 22, "us_west_washington_1km": 22, "west_6km": 22, "hpcguid": 22, "hpcqpfndfd": 22, "hrrr": [22, 27], "lamp2p5": 22, "mrms_0500": 22, "mrms_1000": 22, "nam12": 22, "nohrsc": 22, "rtma": 22, "rtof": 22, "westatl": 22, "westconu": 22, "spcguid": 22, "seaic": 22, "tpcwindprob": 22, "urma25": 22, "navgem0p5": 22, "interest": [22, 32, 33], "20km": 22, "grid_param": 22, "36shrmi": 22, "50dbzz": 22, "av": 22, "appt": 22, "bli": 22, "brn": 22, "brnehii": 22, "brnshr": 22, "brnmag": 22, "brnvec": 22, "bdept06": 22, "blkmag": 22, "blkshr": 22, "cape": [22, 29], "cfrzr": 22, "cfrzr3hr": 22, "cfrzr6hr": 22, "cicep": 22, "cicep3hr": 22, "cicep6hr": 22, "cin": 22, "cp": 22, "cp3hr": 22, "cp6hr": 22, "cpr": 22, "cprd": 22, "crain": 22, "crain3hr": 22, "crain6hr": 22, "csnow": 22, "csnow3hr": 22, "csnow6hr": 22, "curu": 22, "capestk": 22, "corf": 22, "corff": 22, "corffm": 22, "corfm": 22, "critt1": 22, "cumnrm": 22, "cumshr": 22, "divf": 22, "divfn": 22, "dpd": 22, "ehi": 22, "ehi01": 22, "ehii": 22, "emsp": 22, "ept": 22, "epta": 22, "eptc": 22, "eptgrd": 22, "eptgrdm": 22, "epvg": 22, "epv": 22, "epvt1": 22, "epvt2": 22, "esp": 22, "esp2": 22, "fvec": 22, "fnvec": 22, "fsvec": 22, "fzra1": 22, "fzra2": 22, "gh": 22, "ghxsm": 22, "ghxsm2": 22, "gvv": 22, "hi": 22, "hi1": 22, "hi3": 22, "hi4": 22, "hidx": 22, "heli": 22, "helic": 22, "inv": 22, "iplay": 22, "Into": 22, "ki": [22, 29], "lisfc2x": 22, "lm5": 22, "lm6": 22, "madv": 22, "mcon": 22, "mcon2": 22, "mllcl": 22, "mmp": 22, "msfdi": 22, "msfi": 22, "msfmi": 22, "msg": 22, "mtv": [22, 25], "mix1": 22, "mix2": 22, "mmag": 22, "mnt3hr": 22, "mnt6hr": 22, "mpv": 22, "mxt3hr": 22, "mxt6hr": 22, "nbe": 22, "nst": 22, "nst1": 22, "nst2": 22, "p": [22, 25, 29, 30], "p3hr": 22, "p6hr": 22, "padv": 22, "pbe": 22, "pec": 22, "pfrnt": 22, "pgrd": 22, "pgrd1": 22, "pgrdm": 22, "piva": 22, "ptva": 22, "ptyp": 22, "pw": [22, 29], "pw2": 22, "pot": 22, "pota": 22, "qpv1": 22, "qpv2": 22, "qpv3": 22, "qpv4": 22, "rh": [22, 25], "rh_001_bin": 22, "rh_002_bin": 22, "rm5": 22, "rm6": 22, "rmprop": 22, "rmprop2": 22, "rv": 22, "rain1": 22, "rain2": 22, "rain3": 22, "ro": 22, "shx": 22, "sli": 22, "snsq": 22, "snw": 22, "snwa": 22, "srml": 22, "srmlm": 22, "srmm": 22, "srmmm": 22, "srmr": 22, "srmrm": 22, "ssp": 22, "ssi": 22, "stp": 22, "stp1": 22, "shear": 22, "shrmag": 22, "snow1": 22, "snow2": 22, "snow3": 22, "snowt": 22, "st": 22, "pr": [22, 25], "strtp": 22, "strmmot": 22, "sucp": 22, "tadv": 22, "tgrd": 22, "tgrdm": 22, "tori": 22, "tori2": 22, "tp": [22, 27], "tp3hr": 22, "tp6hr": 22, "tqind": 22, "tshrmi": 22, "tv": 22, "tw": 22, "t_001_bin": 22, "tdef": 22, "tdend": 22, "thgrd": 22, "thom5": 22, "thom5a": 22, "thom6": 22, "tmdpd": 22, "tmax": 22, "tmin": 22, "totqi": 22, "tstk": 22, "twmax": 22, "twmin": 22, "twstk": 22, "txsm": 22, "vadv": 22, "vadvadvect": 22, "vgp": 22, "vss": 22, "wcd": 22, "wd": 22, "weasd": 22, "wndchl": 22, "ageow": 22, "ageowm": 22, "ccape": 22, "ccin": 22, "ctot": 22, "capetolvl": 22, "dcape": 22, "dp": 22, "dt": 22, "dvadv": 22, "dz": 22, "defv": 22, "del2gh": 22, "df": 22, "fgen": 22, "fnd": 22, "fsd": 22, "gamma": 22, "geovort": 22, "geow": 22, "geowm": 22, "locap": 22, "maxept": 22, "minept": 22, "mixrat": 22, "msl": 22, "mucap": 22, "pv": 22, "pveq": 22, "qdiv": 22, "qvec": 22, "qnvec": 22, "qsvec": 22, "shwlt": 22, "snorat": 22, "snoratcrocu": 22, "snoratemcsref": 22, "snoratov2": 22, "snoratspc": 22, "snoratspcdeep": 22, "snoratspcsurfac": 22, "staticcorioli": 22, "staticspac": 22, "statictopo": 22, "swtidx": 22, "ttot": 22, "twind": 22, "twindu": 22, "twindv": 22, "ufx": 22, "uwstk": 22, "ulsnorat": 22, "vsmthw": 22, "vtot": 22, "vwstk": 22, "wdiv": 22, "wsp": 22, "wsp_001_bin": 22, "wsp_002_bin": 22, "wsp_003_bin": 22, "wsp_004_bin": 22, "zagl": 22, "param1": 22, "param2": 22, "param3": 22, "grid_level": 22, "0sfc": [22, 27], "350": 22, "610": 22, "0_40000": 22, "120": [22, 27], "0_150": 22, "0bl": 22, "900": 22, "0_610": 22, "450": 22, "575": [22, 29], "60": [22, 25, 27, 28, 29, 30], "0_90": 22, "0pv": 22, "950": 22, "150": 22, "5pv": 22, "700": 22, "825": 22, "0_180": 22, "250": 22, "0_500": 22, "800": 22, "4000": 22, "925": 22, "0trop": 22, "750": 22, "500": [22, 29], "625": [22, 27], "400": 22, "875": [22, 27], "0_1000": 22, "850": 22, "600": 22, "725": 22, "0_6000": 22, "975": 22, "550": 22, "0_3000": 22, "675": 22, "200": [22, 29], "0_30": 22, "30": [22, 27, 29, 30], "0_60": 22, "650": 22, "525": 22, "300": [22, 27, 29], "0_120": 22, "775": [22, 24], "340": 22, "0_350": 22, "0k": 22, "290": 22, "0_300": 22, "0_600": 22, "320": 22, "0ke": 22, "0_750": 22, "0tilt": 22, "3tilt": 22, "0_900": 22, "5500": 22, "255": 22, "0_265": 22, "2000": [22, 31], "0_850": 22, "0_250": 22, "280": 22, "0_290": 22, "1524": 22, "0_330": 22, "310": 22, "0_320": 22, "330": 22, "0_800": 22, "4tilt": 22, "3500": 22, "0_310": 22, "0_12000": 22, "9tilt": 22, "0_700": 22, "0_400": 22, "345": 22, "0_260": 22, "4572": 22, "275": 22, "0_285": 22, "335": 22, "295": [22, 27], "0_305": 22, "0_550": 22, "9000": 22, "0_7000": 22, "9144": 22, "325": 22, "0_335": 22, "0_8000": 22, "0_609": 22, "6fhag": 22, "315": 22, "0_325": 22, "0_4000": 22, "0_5500": 22, "5tilt": 22, "0_345": 22, "2500": 22, "10000": 22, "0_2000": 22, "7000": 22, "0_1500": 22, "305": 22, "285": 22, "0_295": 22, "0_3500": 22, "0_5000": 22, "7620": 22, "6096": 22, "6000": 22, "0_10000": 22, "265": 22, "0_275": 22, "0_650": 22, "8tilt": 22, "0_340": 22, "3657": 22, "7tilt": 22, "270": 22, "0_280": 22, "1500": 22, "0_950": 22, "0_200": 22, "0_100": 22, "8000": 22, "0_315": 22, "0_2500": 22, "260": [22, 28], "0_270": 22, "2743": 22, "3048": 22, "609": 22, "0_4500": 22, "1828": 22, "8fhag": 22, "0_450": 22, "4500": 22, "1250": 22, "0_9000": 22, "0lyrmb": 22, "li": [22, 29], "hag": 22, "stand": [22, 31], "ntat": 22, "nomin": 22, "atmospher": 22, "bl": [22, 25], "trop": 22, "tropopaus": 22, "yyyi": 22, "mm": 22, "dd": 22, "hh": 22, "ss": 22, "ff": 22, "grid_cycl": 22, "grid_tim": 22, "grid_fcstrun": 22, "fcst": [22, 27], "getfcsttim": [22, 25, 27], "000": 22, "10800": 22, "21600": 22, "32400": 22, "43200": 22, "54000": 22, "64800": 22, "75600": 22, "86400": 22, "97200": 22, "108000": 22, "118800": 22, "129600": 22, "140400": 22, "151200": 22, "162000": 22, "172800": 22, "183600": 22, "194400": 22, "205200": 22, "216000": 22, "226800": 22, "237600": 22, "248400": 22, "259200": 22, "270000": 22, "280800": 22, "291600": 22, "302400": 22, "324000": 22, "345600": 22, "367200": 22, "388800": 22, "410400": 22, "432000": 22, "453600": 22, "475200": 22, "496800": 22, "518400": 22, "540000": 22, "561600": 22, "583200": 22, "604800": 22, "626400": 22, "648000": 22, "669600": 22, "691200": 22, "712800": 22, "734400": 22, "756000": 22, "777600": 22, "799200": 22, "820800": 22, "842400": 22, "864000": 22, "kind": [22, 23, 25], "analyz": 22, "grid_respons": 22, "grid_data": 22, "257": 22, "369": 22, "vist": 22, "bufr": [22, 25, 32], "resourc": [22, 32], "topographi": [22, 32], "reformat": 23, "styliz": 23, "timrang": 23, "cfeatur": [23, 28, 31], "calc": [23, 25, 28, 30], "wind_compon": [23, 25, 28, 30], "stationplotlayout": [23, 28], "sky_cov": [23, 28], "integ": [23, 26, 28], "ovc": [23, 28], "bkn": [23, 28], "sct": [23, 28], "single_value_param": [23, 28], "timeob": [23, 28], "winddir": [23, 28], "windspe": [23, 28], "multi_value_param": [23, 28], "too": 23, "clutter": 23, "kpdx": [23, 25], "kokc": [23, 25], "kict": [23, 25], "kgld": [23, 25], "kmem": [23, 25], "kbo": [23, 25], "kmia": [23, 25], "kmob": [23, 25], "kabq": [23, 25], "kphx": [23, 25], "kttf": 23, "kord": [23, 25], "kbil": [23, 25], "kbi": [23, 25], "kcpr": [23, 25], "klax": [23, 25], "katl": [23, 25], "kmsp": [23, 25], "kslc": [23, 25], "kdfw": [23, 25], "knyc": 23, "kphl": [23, 25], "kpit": [23, 25], "koli": 23, "ksyr": [23, 25], "klex": [23, 25], "kch": [23, 25], "ktlh": [23, 25], "khou": [23, 25], "kgjt": [23, 25], "klbb": [23, 25], "klsv": 23, "kgrb": [23, 25], "kclt": [23, 25], "klnk": [23, 25], "kdsm": [23, 25], "kboi": [23, 25], "kfsd": [23, 25], "krap": [23, 25], "kric": [23, 25], "kjan": [23, 25], "khsv": [23, 25], "kcrw": [23, 25], "ksat": [23, 25], "kbui": 23, "k0co": 23, "kzpc": 23, "kvih": 23, "kbdg": 23, "kmlf": 23, "keli": [23, 25], "kwmc": [23, 25], "koth": [23, 25], "kcar": [23, 25], "klmt": [23, 25], "krdm": [23, 25], "kpdt": [23, 25], "ksea": [23, 25], "kuil": 23, "keph": [23, 25], "kpuw": 23, "kcoe": [23, 25], "kmlp": 23, "kpih": [23, 25], "kida": [23, 25], "kmso": [23, 25], "kacv": [23, 25], "khln": [23, 25], "kolf": 23, "krut": 23, "kpsm": [23, 25], "kjax": [23, 25], "ktpa": [23, 25], "kshv": [23, 25], "kmsy": [23, 25], "kelp": [23, 25], "krno": [23, 25], "kfat": [23, 25], "ksfo": [23, 25], "knyl": 23, "kbro": [23, 25], "kmrf": 23, "kdrt": [23, 25], "kfar": [23, 25], "kbde": [23, 25], "kdlh": [23, 25], "khot": [23, 25], "klbf": [23, 25, 30], "kflg": [23, 25], "kcle": [23, 25], "kunv": [23, 25], "decid": [23, 31], "much": [23, 31], "easili": [23, 24, 31], "adjust": [23, 31], "doc": [23, 31], "html": [23, 31], "__": [23, 31], "59": 23, "properli": [23, 31], "track": [23, 26, 31], "entri": [23, 31], "reciev": 23, "explicitli": 23, "dynam": 23, "station_nam": 23, "new_station_id": 23, "avail_param": 23, "alreadi": [23, 33], "skip": 23, "fromtimestamp": 23, "correct": [23, 28, 31], "put": [23, 28], "hand": [23, 28], "later": [23, 28, 31], "stid": [23, 28], "air_temperatur": [23, 28], "dew_point_temperatur": [23, 28], "direct": [23, 28], "eastward_wind": [23, 28], "northward_wind": [23, 28], "cloud_coverag": [23, 28], "assign": [23, 30], "land": [23, 31], "ocean": 23, "lake": 23, "border": 23, "give": [23, 31], "contextu": 23, "layout": 23, "95": 23, "central_latitud": [23, 28], "standard_parallel": [23, 28], "add_subplot": 23, "118": 23, "73": 23, "23": [23, 26, 29], "custom_layout": [23, 28], "add_barb": [23, 28], "add_valu": [23, 28], "fmt": [23, 28], "0f": [23, 28], "darkr": [23, 28], "sw": [23, 28], "add_symbol": 23, "clip_on": [23, 28], "plot_text": 23, "aviat": 23, "static": 23, "context": 24, "ma": 24, "shapelyfeatur": [24, 28, 31], "naturalearthfeatur": [24, 29, 31], "op": 24, "cascaded_union": 24, "block": 24, "nice": 24, "neatli": 24, "gi": 24, "the_geom": [24, 28], "spatial": [24, 28], "column": [24, 29, 31], "multilinestr": 24, "boulder": 24, "bou": 24, "area": [24, 27, 29], "withe": 24, "characterist": 24, "refin": 24, "mapdata": [24, 28], "wfo": 24, "tie": 24, "inloc": [24, 28], "locationfield": [24, 28], "ti": 24, "geomfield": [24, 28], "merged_counti": 24, "polit": 24, "political_boundari": [24, 31], "cultur": [24, 29, 31], "admin_0_boundary_lines_land": [24, 31], "admin_1_states_provinces_lin": [24, 29, 31], "black": [24, 27, 30, 31], "shape_featur": [24, 28, 31], "86989b": 24, "feature_artist": [24, 27, 28], "featureartist": [24, 27, 28], "0x11568f6d0": 24, "burnt": 24, "cc5000": 24, "previous": [24, 33], "fall": [24, 29], "225": 24, "progress": 24, "disclosur": 24, "prog_disc": 24, "significantli": 24, "asid": 24, "citylist": 24, "citynam": 24, "pop": 24, "good": 24, "txt": 24, "enumer": [24, 27, 29], "xytext": 24, "1205": 24, "58": [24, 26, 29], "again": 24, "requst": 24, "blue": [24, 28], "20b2aa": 24, "208": 24, "majorriv": 24, "1400": 24, "slow": 24, "larg": 24, "griddata": 24, "n": [24, 25, 30], "0x115a20370": 24, "778": 24, "1058": 24, "1694": 24, "1693": 24, "1688": 24, "757": 24, "761": 24, "762": 24, "1701": 24, "758": 24, "760": 24, "1703": 24, "1767": 24, "1741": 24, "1706": 24, "769": 24, "768": 24, "1746": 24, "1716": 24, "765": 24, "1781": 24, "1753": 24, "1730": 24, "766": 24, "759": 24, "masked_invalid": 24, "minimum": 24, "elev": [24, 30], "maximum": [24, 27], "contourf": 24, "terrain": 24, "alpha": 24, "623": 24, "4328": 24, "matplotplib": 24, "schema": 24, "colorado": 24, "watch": [24, 32], "page": 24, "plugin": [25, 30], "64": [25, 31], "vertic": [25, 30, 31, 32], "eta": 25, "distirubt": 25, "over": 25, "noaaport": 25, "paramt": 25, "spechum": 25, "ucomp": 25, "vcomp": 25, "omega": 25, "cldcvr": 25, "tri": [25, 30], "mtri": [25, 30], "exp": 25, "lcl": [25, 30], "dry_laps": [25, 30], "parcel_profil": [25, 30], "wind_spe": [25, 30], "wind_direct": 25, "thermo": 25, "vapor_pressur": 25, "concaten": [25, 30], "forecastmodel": 25, "reporttyp": 25, "1v4": 25, "3j2": 25, "4bl": 25, "4bq": 25, "4hv": 25, "4om": 25, "5af": 25, "5ag": 25, "5sz": 25, "6ro": 25, "8v7": 25, "9b6": 25, "adm": 25, "afa": 25, "agr": 25, "ahn": 25, "aia": 25, "aih": 25, "ajo": 25, "anj": 25, "apx": 25, "aqq": 25, "ath": 25, "atl1": 25, "atl2": 25, "atl3": 25, "atl4": 25, "atlh": 25, "awh": 25, "awr": 25, "j": [25, 27], "o": 25, "q": 25, "bab": 25, "bdg": 25, "bdp": 25, "bfl": 25, "bgtl": 25, "bh1": 25, "bh2": 25, "bh3": 25, "bh4": 25, "bh5": 25, "bhk": 25, "bid": 25, "bir": 25, "blu": 25, "bmx": 25, "bna": 25, "bod": 25, "bra": 25, "btl": 25, "bvr": 25, "c01": 25, "c02": 25, "c03": 25, "c04": 25, "c06": 25, "c07": 25, "c08": 25, "c09": 25, "c10": 25, "c11": 25, "c12": 25, "c13": 25, "c14": 25, "c17": 25, "c18": 25, "c19": 25, "c20": 25, "c21": 25, "c22": 25, "c23": 25, "c24": 25, "c25": 25, "c27": 25, "c28": 25, "c30": 25, "c31": 25, "c32": 25, "c33": 25, "c34": 25, "c35": 25, "c36": 25, "c7h": 25, "cai": 25, "cbe": 25, "cbn": 25, "che": 25, "ckn": 25, "cld": 25, "cle": 25, "cln": 25, "col1": 25, "col2": 25, "col3": 25, "col4": 25, "cqv": 25, "crl": 25, "crr": 25, "cty": 25, "cvm": 25, "cv": 25, "cweu": 25, "cwfn": 25, "cwkx": 25, "cwlb": 25, "cwlo": 25, "cwlt": 25, "cwlw": 25, "cwmw": 25, "cwo": 25, "cwph": 25, "cwqg": 25, "cwsa": 25, "cwse": 25, "cwzb": 25, "cwzc": 25, "cwzv": 25, "cyah": 25, "cyaw": 25, "cybk": 25, "cybu": 25, "cycb": 25, "cycg": 25, "cycx": 25, "cyda": 25, "cyeg": 25, "cyev": 25, "cyfb": 25, "cyfo": 25, "cyf": 25, "cygq": 25, "cyhm": 25, "cyhz": 25, "cyjt": 25, "cylh": 25, "cylj": 25, "cymd": 25, "cymo": 25, "cymt": 25, "cymx": 25, "cyoc": 25, "cyow": 25, "cypa": 25, "cype": 25, "cypl": 25, "cypq": 25, "cyqa": 25, "cyqd": 25, "cyqg": 25, "cyqh": 25, "cyqi": 25, "cyqk": 25, "cyqq": 25, "cyqr": 25, "cyqt": 25, "cyqx": 25, "cyrb": 25, "cysm": 25, "cysi": 25, "cyth": 25, "cytl": 25, "cyt": 25, "cyul": 25, "cyux": 25, "cyvo": 25, "cyvp": 25, "cyvq": 25, "cyvr": 25, "cyvv": 25, "cywa": 25, "cywg": 25, "cywo": 25, "cyxc": 25, "cyx": 25, "cyxh": 25, "cyxu": 25, "cyxx": 25, "cyxi": 25, "cyxz": 25, "cyyb": 25, "cyyc": 25, "cyy": 25, "cyyj": 25, "cyyq": 25, "cyyr": 25, "cyyt": 25, "cyyz": 25, "cyzf": 25, "cyz": 25, "cyzt": 25, "cyzv": 25, "den": 25, "dov": 25, "dpg": 25, "dsc": 25, "dsd": 25, "dtx": 25, "dvn": 25, "dy": 25, "e28": 25, "e74": 25, "eat": 25, "eax": 25, "edw": 25, "efl": 25, "emp": 25, "enl": 25, "estc": 25, "fc": 25, "fdr": 25, "ffc": 25, "fhu": 25, "flg": 25, "flp": 25, "fpk": 25, "fri": 25, "fsi": 25, "ftr": 25, "fwd": 25, "g001": 25, "g003": 25, "g004": 25, "g005": 25, "g007": 25, "g009": 25, "gdp": 25, "gdv": 25, "glry": 25, "gmx1": 25, "gnb": 25, "gnc": 25, "grf": 25, "gtb": 25, "gtp": 25, "gvl": 25, "gv": 25, "gyx": 25, "h02": 25, "hai": 25, "hgr": 25, "hmn": 25, "hom": 25, "hoo": 25, "hsi": 25, "hyr": 25, "hy": 25, "icc": 25, "igm": 25, "iln": 25, "il": 25, "ilx": 25, "imt": 25, "ink": 25, "ipx": 25, "jack": 25, "jdn": 25, "k40b": 25, "k9v9": 25, "kabe": 25, "kabi": 25, "kabr": 25, "kack": 25, "kact": 25, "kaci": 25, "kagc": 25, "kag": 25, "kahn": 25, "kak": 25, "kalb": 25, "kali": 25, "kalo": 25, "kal": 25, "kalw": 25, "kama": 25, "kan": 25, "kanb": 25, "kand": 25, "kaoo": 25, "kapa": 25, "kapn": 25, "kart": 25, "kase": 25, "kast": 25, "kati": 25, "kaug": 25, "kau": 25, "kauw": 25, "kavl": 25, "kavp": 25, "kaxn": 25, "kai": 25, "kazo": 25, "kbaf": 25, "kbce": 25, "kbdl": 25, "kbdr": 25, "kbed": 25, "kbfd": 25, "kbff": 25, "kbfi": 25, "kbfl": 25, "kbgm": 25, "kbgr": 25, "kbhb": 25, "kbhm": 25, "kbih": 25, "kbjc": 25, "kbji": 25, "kbke": 25, "kbkw": 25, "kblf": 25, "kblh": 25, "kbli": 25, "kbml": 25, "kbna": 25, "kbno": 25, "kbnv": 25, "kbpt": 25, "kbqk": 25, "kbrd": 25, "kbrl": 25, "kbtl": 25, "kbtm": 25, "kbtr": 25, "kbtv": 25, "kbuf": 25, "kbur": 25, "kbvi": 25, "kbvx": 25, "kbvy": 25, "kbwg": 25, "kbwi": 25, "kbyi": 25, "kbzn": 25, "kcae": 25, "kcak": 25, "kcdc": 25, "kcdr": 25, "kcd": 25, "kcec": 25, "kcef": 25, "kcgi": 25, "kcgx": 25, "kcha": 25, "kchh": 25, "kcho": 25, "kcid": 25, "kciu": 25, "kckb": 25, "kckl": 25, "kcll": 25, "kclm": 25, "kcmh": 25, "kcmi": 25, "kcmx": 25, "kcnm": 25, "kcnu": 25, "kcod": 25, "kcon": 25, "kco": 25, "kcou": 25, "kcre": 25, "kcrp": 25, "kcrq": 25, "kcsg": 25, "kcsv": 25, "kctb": 25, "kcvg": 25, "kcwa": 25, "kcy": 25, "kdab": 25, "kdag": 25, "kdal": 25, "kdan": 25, "kdai": 25, "kdbq": 25, "kdca": 25, "kddc": 25, "kdec": 25, "kden": 25, "kdet": 25, "kdhn": 25, "kdht": 25, "kdik": 25, "kdl": 25, "kdmn": 25, "kdpa": 25, "kdra": 25, "kdro": 25, "kdtw": 25, "kdug": 25, "kduj": 25, "keat": 25, "keau": 25, "kecg": 25, "keed": 25, "kege": 25, "kekn": 25, "keko": 25, "kel": 25, "keld": 25, "kelm": 25, "kelo": 25, "kenv": 25, "kepo": 25, "kepz": 25, "keri": 25, "kesf": 25, "keug": 25, "kevv": 25, "kewb": 25, "kewn": 25, "kewr": 25, "keyw": 25, "kfam": 25, "kfai": 25, "kfca": 25, "kfdy": 25, "kfkl": 25, "kfll": 25, "kflo": 25, "kfmn": 25, "kfmy": 25, "kfnt": 25, "kfoe": 25, "kfpr": 25, "kfrm": 25, "kfsm": 25, "kftw": 25, "kfty": 25, "kfve": 25, "kfvx": 25, "kfwa": 25, "kfxe": 25, "kfyv": 25, "kgag": 25, "kgcc": 25, "kgck": 25, "kgcn": 25, "kgeg": 25, "kgfk": 25, "kgfl": 25, "kggg": 25, "kggw": 25, "kglh": 25, "kgl": 25, "kgmu": 25, "kgnr": 25, "kgnv": 25, "kgon": 25, "kgpt": 25, "kgri": 25, "kgrr": 25, "kgso": 25, "kgsp": 25, "kgtf": 25, "kguc": 25, "kgup": 25, "kgwo": 25, "kgyi": 25, "kgzh": 25, "khat": 25, "khbr": 25, "khdn": 25, "khib": 25, "khio": 25, "khky": 25, "khlg": 25, "khob": 25, "khon": 25, "khpn": 25, "khqm": 25, "khrl": 25, "khro": 25, "khth": 25, "kht": 25, "khuf": 25, "khul": 25, "khut": 25, "khvn": 25, "khvr": 25, "khya": 25, "kiad": 25, "kiag": 25, "kiah": 25, "kil": 25, "kilg": 25, "kilm": 25, "kink": 25, "kinl": 25, "kint": 25, "kinw": 25, "kipl": 25, "kipt": 25, "kisn": 25, "kisp": 25, "kith": 25, "kiwd": 25, "kjac": 25, "kjbr": 25, "kjfk": 25, "kjhw": 25, "kjkl": 25, "kjln": 25, "kjm": 25, "kjst": 25, "kjxn": 25, "kkl": 25, "klaf": 25, "klan": 25, "klar": 25, "kla": 25, "klbe": 25, "klcb": 25, "klch": 25, "kleb": 25, "klfk": 25, "klft": 25, "klga": 25, "klgb": 25, "klgu": 25, "klit": 25, "klnd": 25, "klol": 25, "kloz": 25, "klrd": 25, "klse": 25, "kluk": 25, "klv": 25, "klwb": 25, "klwm": 25, "klw": 25, "klwt": 25, "klyh": 25, "klzk": 25, "kmaf": 25, "kmb": 25, "kmcb": 25, "kmce": 25, "kmci": 25, "kmcn": 25, "kmco": 25, "kmcw": 25, "kmdn": 25, "kmdt": 25, "kmdw": 25, "kmei": 25, "kmfd": 25, "kmfe": 25, "kmfr": 25, "kmgm": 25, "kmgw": 25, "kmhe": 25, "kmhk": 25, "kmht": 25, "kmiv": 25, "kmkc": 25, "kmke": 25, "kmkg": 25, "kmkl": 25, "kmlb": 25, "kmlc": 25, "kmli": 25, "kml": 25, "kmlt": 25, "kmlu": 25, "kmmu": 25, "kmot": 25, "kmpv": 25, "kmqt": 25, "kmrb": 25, "kmry": 25, "kmsl": 25, "kmsn": 25, "kmss": 25, "kmtj": 25, "kmtn": 25, "kmwh": 25, "kmyr": 25, "kna": 25, "knew": 25, "knl": 25, "knsi": 25, "koak": 25, "kofk": 25, "kogd": 25, "kolm": 25, "koma": 25, "kont": 25, "kopf": 25, "koqu": 25, "korf": 25, "korh": 25, "kosh": 25, "kotm": 25, "kp11": 25, "kp38": 25, "kpae": 25, "kpah": 25, "kpbf": 25, "kpbi": 25, "kpdk": 25, "kpfn": 25, "kpga": 25, "kphf": 25, "kphn": 25, "kpia": 25, "kpib": 25, "kpie": 25, "kpir": 25, "kpkb": 25, "kpln": 25, "kpmd": 25, "kpnc": 25, "kpne": 25, "kpn": 25, "kpou": 25, "kpqi": 25, "kprb": 25, "kprc": 25, "kpsc": 25, "kpsp": 25, "kptk": 25, "kpub": 25, "kpvd": 25, "kpvu": 25, "kpwm": 25, "krad": 25, "krbl": 25, "krdd": 25, "krdg": 25, "krdu": 25, "krfd": 25, "kriw": 25, "krkd": 25, "krk": 25, "krnt": 25, "kroa": 25, "kroc": 25, "krow": 25, "krsl": 25, "krst": 25, "krsw": 25, "krum": 25, "krwf": 25, "krwi": 25, "krwl": 25, "ksac": 25, "ksaf": 25, "ksan": 25, "ksav": 25, "ksba": 25, "ksbn": 25, "ksbp": 25, "ksby": 25, "ksch": 25, "ksck": 25, "ksdf": 25, "ksdm": 25, "ksdy": 25, "ksep": 25, "ksff": 25, "ksgf": 25, "ksgu": 25, "kshr": 25, "ksjc": 25, "ksjt": 25, "ksle": 25, "kslk": 25, "ksln": 25, "ksmf": 25, "ksmx": 25, "ksna": 25, "ksn": 25, "kspi": 25, "ksp": 25, "ksrq": 25, "kssi": 25, "kstj": 25, "kstl": 25, "kstp": 25, "kst": 25, "ksun": 25, "ksu": 25, "ksux": 25, "ksve": 25, "kswf": 25, "ktcc": 25, "ktcl": 25, "ktc": 25, "kteb": 25, "ktiw": 25, "ktmb": 25, "ktol": 25, "ktop": 25, "ktph": 25, "ktri": 25, "ktrk": 25, "ktrm": 25, "kttd": 25, "kttn": 25, "ktul": 25, "ktup": 25, "ktu": 25, "ktvc": 25, "ktvl": 25, "ktwf": 25, "ktxk": 25, "ktyr": 25, "kty": 25, "kuca": 25, "kuin": 25, "kuki": 25, "kvct": 25, "kvel": 25, "kvld": 25, "kvny": 25, "kvrb": 25, "kwjf": 25, "kwrl": 25, "kwy": 25, "ky22": 25, "ky26": 25, "kykm": 25, "kykn": 25, "kyng": 25, "kyum": 25, "kzzv": 25, "laa": 25, "lap": 25, "lby": 25, "ldl": 25, "lhx": 25, "lic": 25, "lor": 25, "lrr": 25, "lsf": 25, "lu": 25, "lvm": 25, "lw1": 25, "maz": 25, "mdpc": 25, "mdpp": 25, "mdsd": 25, "mdst": 25, "mgfl": 25, "mggt": 25, "mght": 25, "mgpb": 25, "mgsj": 25, "mham": 25, "mhca": 25, "mhch": 25, "mhlc": 25, "mhle": 25, "mhlm": 25, "mhnj": 25, "mhpl": 25, "mhro": 25, "mhsr": 25, "mhte": 25, "mhtg": 25, "mhyr": 25, "mib": 25, "mie": 25, "mkjp": 25, "mkj": 25, "mld": 25, "mmaa": 25, "mma": 25, "mmbt": 25, "mmce": 25, "mmcl": 25, "mmcn": 25, "mmc": 25, "mmcu": 25, "mmcv": 25, "mmcz": 25, "mmdo": 25, "mmgl": 25, "mmgm": 25, "mmho": 25, "mmlp": 25, "mmma": 25, "mmmd": 25, "mmml": 25, "mmmm": 25, "mmmt": 25, "mmmx": 25, "mmmy": 25, "mmmz": 25, "mmnl": 25, "mmpr": 25, "mmrx": 25, "mmsd": 25, "mmsp": 25, "mmtc": 25, "mmtj": 25, "mmtm": 25, "mmto": 25, "mmtp": 25, "mmun": 25, "mmvr": 25, "mmzc": 25, "mmzh": 25, "mmzo": 25, "mnmg": 25, "mnpc": 25, "mor": 25, "mpbo": 25, "mpch": 25, "mpda": 25, "mpmg": 25, "mpsa": 25, "mpto": 25, "mpx": 25, "mrch": 25, "mrf": 25, "mrlb": 25, "mrlm": 25, "mroc": 25, "mrpv": 25, "mr": 25, "msac": 25, "mslp": 25, "msss": 25, "mtch": 25, "mtl": 25, "mtpp": 25, "mty": 25, "muba": 25, "mubi": 25, "muca": 25, "mucl": 25, "mucm": 25, "mucu": 25, "mugm": 25, "mugt": 25, "muha": 25, "mumo": 25, "mumz": 25, "mung": 25, "muvr": 25, "muvt": 25, "mwcr": 25, "myb": 25, "myeg": 25, "mygf": 25, "mygw": 25, "myl": 25, "mynn": 25, "mzbz": 25, "mzt": 25, "nck": 25, "ngx": 25, "nhk": 25, "nid": 25, "nkx": 25, "noa": 25, "nru": 25, "ntd": 25, "exit": 25, "construct": [25, 31], "moisutr": 25, "spec": 25, "tmp": [25, 28], "uc": 25, "vc": 25, "om": 25, "fcsthour": 25, "period": 25, "94": [25, 26], "41999816894531": 25, "43": [25, 29], "65000152587891": 25, "2020": 25, "09": [25, 26, 29], "04": [25, 29, 31], "sep": 25, "ourselv": 25, "manual": [25, 31], "ncep": 25, "nsharp": 25, "mix": 25, "vapor": 25, "mbar": [25, 28, 30], "94384": 25, "spd": [25, 30], "dir": 25, "deg": 25, "rmix": 25, "kg": [25, 26], "td": [25, 30], "assum": 25, "td2": 25, "soundingrequest": 25, "blob": 25, "unidata_16": 25, "gov": 25, "noaa": 25, "src": 25, "mergesound": 25, "l1783": 25, "ntmp": 25, "pa": 25, "t0": 25, "263": 25, "17": [25, 26, 27, 29], "29": [25, 29], "vap": 25, "112": 25, "243": 25, "vapr": 25, "dwpc": 25, "skew": [25, 30], "slant": [25, 30], "ipython3": 26, "algorithm": 26, "precipit": [26, 27, 28, 29], "available_loc": 26, "productid": 26, "productnam": 26, "134": 26, "135": 26, "138": 26, "141": 26, "159": 26, "161": 26, "163": 26, "165": 26, "166": 26, "169": 26, "170": [26, 29], "171": 26, "172": 26, "173": 26, "174": 26, "175": 26, "176": 26, "177": 26, "27": [26, 27], "37": 26, "41": 26, "57": [26, 27], "78": [26, 27, 28], "81": [26, 27], "99": 26, "coeff": 26, "diff": 26, "inst": 26, "precip": [26, 32], "rate": [26, 29], "vert": 26, "liq": 26, "echo": 26, "hydrometeor": 26, "melt": 26, "mesocyclon": 26, "One": 26, "accum": 26, "unbias": 26, "phase": 26, "rel": 26, "make_map": [26, 27, 28, 29], "nexrad_data": 26, "prod": 26, "rec": 26, "flat": 26, "ndarrai": 26, "flatten": 26, "nanmin": 26, "nanmax": 26, "pcolormesh": [26, 27, 29], "kmhx_0": 26, "0_464_464": 26, "dbz": 26, "464": 26, "42": [26, 27, 29], "31": [26, 28, 29], "0_230_360_0": 26, "0_359": 26, "230": 26, "360": 26, "0_920_360_0": 26, "0555557e": 26, "3071667e": 26, "sec": 26, "920": 26, "0_13_13": 26, "190": [26, 29], "690": 26, "count": 26, "13": [26, 27, 29], "0_460_360_0": 26, "834518": 26, "460": 26, "0_116_116": 26, "12192": 26, "116": 26, "0_346_360_0": 26, "346": 26, "0_115_360_359": 26, "0127": 26, "115": 26, "008382": 26, "0027720002": 26, "5775646e": 26, "017472787": 26, "000508": 26, "082804": 26, "08255": 26, "019499999": 26, "0_116_360_0": 26, "088392": 26, "11": [26, 27, 29], "08": [26, 29], "5399999e": 26, "033959802": 26, "greatest": 27, "conus_envelop": 27, "tt": [27, 29], "3600": [27, 29], "fcsthr": 27, "tp_inch": 27, "0393701": 27, "1875": 27, "52": 27, "125": [27, 29], "375": 27, "77": [27, 29], "21": 27, "79": 27, "24": [27, 28, 31], "82": [27, 28], "84": 27, "6875": 27, "33": [27, 28], "36": 27, "3125": 27, "89": [27, 28, 29], "48": 27, "127": [27, 31], "139": 27, "5625": 27, "54": 27, "140": 27, "63": 27, "66": [27, 29], "69": 27, "72": 27, "5364203": 27, "rainfal": 27, "ii": 27, "jj": 27, "hr": [27, 29], "add_geometri": 27, "white": 27, "0x11b971da0": 27, "853": 27, "5290003": 27, "0290003": 27, "051": 27, "2960005": 27, "8269997": 27, "1790004": 27, "1890006": 27, "071": 27, "812": 27, "718": 27, "339": 27, "626": 27, "670002": 27, "334": 27, "628002": 27, "4420482": 27, "exercis": 28, "observs": 28, "florida": 28, "simple_layout": 28, "get_cloud_cov": 28, "fl": 28, "ga": 28, "ms": 28, "al": 28, "sc": 28, "la": 28, "67402": 28, "50934": 28, "63429260299995": 28, "521051616000022": 28, "03199876199994": 28, "001012802000048": 28, "georgia": 28, "65155": 28, "83": [28, 29], "44848": 28, "louisiana": 28, "0891": 28, "02905": 28, "alabama": 28, "79354": 28, "86": 28, "82676": 28, "mississippi": 28, "75201": 28, "66553": 28, "south": 28, "carolina": 28, "93574": 28, "89899": 28, "sure": 28, "e7e7e7": 28, "000000": 28, "0x11dcfedd8": 28, "ten": 28, "thousand": 28, "sealevelpress": 28, "3468": 28, "152": 28, "simpl": 28, "speed": 28, "wmo": 28, "symbol": 28, "air_pressure_at_sea_level": 28, "present_weath": 28, "pres_weath": 28, "sky_layer_bas": 28, "account": 28, "miss": [28, 30], "fig_synop": 28, "ax_synop": 28, "lower": [29, 31], "datauri": 29, "physicalel": 29, "sectorid": 29, "nesdi": 29, "wcda": 29, "nsof": 29, "mcida": 29, "poe": 29, "npoess": 29, "uniwisc": 29, "miscellan": 29, "nexrcomp": 29, "emeso": 29, "northern": 29, "hemispher": 29, "efd": 29, "tconu": 29, "arctic": 29, "tfd": 29, "prregi": 29, "sounder": 29, "west": 29, "antarct": 29, "supern": 29, "nh": 29, "meteosat": 29, "gm": 29, "actp": 29, "adp": 29, "aod": 29, "38um": 29, "61um": 29, "25um": 29, "90um": 29, "19um": 29, "95um": 29, "34um": 29, "50um": 29, "35um": 29, "20um": 29, "30um": 29, "csm": 29, "cth": 29, "fdc": 29, "lst": 29, "si": 29, "tpw": 29, "vmp": 29, "00hpa": 29, "02hpa": 29, "04hpa": 29, "08hpa": 29, "14hpa": 29, "22hpa": 29, "35hpa": 29, "51hpa": 29, "71hpa": 29, "98hpa": 29, "30hpa": 29, "69hpa": 29, "1013": 29, "95hpa": 29, "103": 29, "1042": 29, "23hpa": 29, "1070": 29, "92hpa": 29, "110": 29, "24hpa": 29, "1100": 29, "117": 29, "78hpa": 29, "65hpa": 29, "133": 29, "85hpa": 29, "46hpa": 29, "142": 29, "38hpa": 29, "151": 29, "27hpa": 29, "43hpa": 29, "160": 29, "50hpa": 29, "58hpa": 29, "32hpa": 29, "15hpa": 29, "70hpa": 29, "99hpa": 29, "212": 29, "03hpa": 29, "223": 29, "44hpa": 29, "45hpa": 29, "235": 29, "247": 29, "41hpa": 29, "259": 29, "97hpa": 29, "26": 29, "18hpa": 29, "272": 29, "286": 29, "26hpa": 29, "12hpa": 29, "34hpa": 29, "314": 29, "328": 29, "68hpa": 29, "343": 29, "62hpa": 29, "358": 29, "374": 29, "72hpa": 29, "390": 29, "89hpa": 29, "407": 29, "47hpa": 29, "424": 29, "10hpa": 29, "441": 29, "88hpa": 29, "459": 29, "47": 29, "19hpa": 29, "477": 29, "96hpa": 29, "496": 29, "63hpa": 29, "53hpa": 29, "515": 29, "535": 29, "555": 29, "17hpa": 29, "13hpa": 29, "52hpa": 29, "596": 29, "31hpa": 29, "617": 29, "639": 29, "661": 29, "683": 29, "67hpa": 29, "706": 29, "57hpa": 29, "71": 29, "54hpa": 29, "729": 29, "753": 29, "777": 29, "79hpa": 29, "802": 29, "37hpa": 29, "827": 29, "852": 29, "878": 29, "904": 29, "87hpa": 29, "931": 29, "958": 29, "59hpa": 29, "96": 29, "11hpa": 29, "986": 29, "07hpa": 29, "vtp": 29, "ctt": 29, "rrqpe": 29, "sst": 29, "vah": 29, "vaml": 29, "micron": 29, "ir": 29, "wv": 29, "visibl": 29, "lift": 29, "water": 29, "skin": 29, "98": 29, "rain": 29, "fog": 29, "ozon": 29, "low": 29, "percent": 29, "normal": 29, "dhr": 29, "dvl": 29, "eet": 29, "hhc": 29, "n0r": 29, "n1p": 29, "ntp": 29, "properti": 29, "utc": [29, 31], "hourdiff": 29, "offsetstr": 29, "ago": 29, "coolwarm": 29, "021388888888888888hr": 29, "0m": 29, "47462": 29, "657455": 29, "24799": 29, "116167": 29, "797777777777778hr": 29, "61595": 29, "45227": 29, "422266": 29, "70851": 29, "1152x1008": 29, "step": [30, 31], "chart": 30, "mandatori": 30, "signific": 30, "availableloc": 30, "man_param": 30, "prman": 30, "htman": 30, "tpman": 30, "tdman": 30, "wdman": 30, "wsman": 30, "sigt_param": 30, "prsigt": 30, "tpsigt": 30, "tdsigt": 30, "wmostanum": 30, "validtim": 30, "rpttype": 30, "staelev": 30, "nummand": 30, "numsigt": 30, "numsigw": 30, "numtrop": 30, "nummwnd": 30, "stanam": 30, "72562": 30, "validperiod": 30, "prsig": 30, "tpsig": 30, "tdsig": 30, "mangeo": 30, "sigtgeo": 30, "parm_arrai": 30, "tpunit": 30, "tdunit": 30, "wsunit": 30, "sigt": 30, "interpol": 30, "inclus": 30, "ps": 30, "argsort": 30, "wpre": 30, "direc": 30, "tman": 30, "dman": 30, "flag": 30, "deg2rad": 30, "logp": 30, "title_str": [30, 31], "round": 30, "lcl_pressur": 30, "lcl_temperatur": 30, "ko": 30, "markerfacecolor": 30, "parcel": 30, "prof": 30, "statement": 31, "accur": 31, "overlai": 31, "patch": 31, "mpatch": 31, "vtec": 31, "place": 31, "recogniz": 31, "hdln": 31, "rememb": 31, "shown": 31, "xx": 31, "phen": 31, "pamphlet": 31, "watch_sig": 31, "warn_sig": 31, "advis_sig": 31, "statem_sig": 31, "worth": 31, "littl": 31, "1502": 31, "summari": 31, "toggl": 31, "earliest": 31, "sum": 31, "alphabet": 31, "ex": 31, "blizzard": 31, "bz": 31, "areal": 31, "fa": 31, "watch_shap": 31, "warning_shap": 31, "advisory_shap": 31, "statement_shap": 31, "time_str": 31, "truncat": 31, "decim": 31, "pars": 31, "easi": 31, "comparison": 31, "first_tim": 31, "last_tim": 31, "blank": 31, "sp": 31, "ref_str": 31, "ref_tim": 31, "phensigstr": 31, "geom_typ": 31, "intersect": 31, "printout": 31, "phensig_titl": 31, "frame": 31, "states_provinc": 31, "ot": 31, "drawn": 31, "turn": 31, "involv": 31, "draw_advisori": 31, "draw_watch": 31, "draw_warn": 31, "draw_stat": 31, "49": 31, "comma": 31, "space": 31, "bigger": 31, "font": 31, "earlier": 31, "horizonat": 31, "under": 31, "larger": 31, "ncol": 31, "bbox_to_anchor": 31, "baltimor": 31, "offic": 31, "colleg": 31, "dupag": 31, "explan": 31, "geometrydata": 31, "shaeplyfeatur": 31, "goe": 32, "cira": 32, "lightn": 32, "mapper": 32, "nexrad": 32, "level3": 32, "accumul": 32, "region": 32, "Of": 32, "advisori": 32, "non": 33, "effict": 33, "git": 33, "pacakg": 33, "forg": 33, "instruct": 33, "browser": 33, "jupyt": 33, "clone": 33, "cd": 33, "yml": 33, "activ": 33, "setup": 33, "forc": 33, "experienc": 33, "issu": 33, "updat": 33, "reach": 33, "email": 33}, "objects": {"awips": [[3, 0, 0, "-", "DateTimeConverter"], [10, 0, 0, "-", "RadarCommon"], [11, 0, 0, "-", "ThriftClient"], [13, 0, 0, "-", "TimeUtil"]], "awips.DateTimeConverter": [[3, 1, 1, "", "constructTimeRange"], [3, 1, 1, "", "convertToDateTime"]], "awips.RadarCommon": [[10, 1, 1, "", "encode_dep_vals"], [10, 1, 1, "", "encode_radial"], [10, 1, 1, "", "encode_thresh_vals"], [10, 1, 1, "", "get_data_type"], [10, 1, 1, "", "get_datetime_str"], [10, 1, 1, "", "get_hdf5_data"], [10, 1, 1, "", "get_header"]], "awips.ThriftClient": [[11, 2, 1, "", "ThriftClient"], [11, 4, 1, "", "ThriftRequestException"]], "awips.ThriftClient.ThriftClient": [[11, 3, 1, "", "sendRequest"]], "awips.TimeUtil": [[13, 1, 1, "", "determineDrtOffset"], [13, 1, 1, "", "makeTime"]], "awips.dataaccess": [[1, 0, 0, "-", "CombinedTimeQuery"], [2, 0, 0, "-", "DataAccessLayer"], [4, 2, 1, "", "IDataRequest"], [6, 0, 0, "-", "ModelSounding"], [7, 0, 0, "-", "PyData"], [8, 0, 0, "-", "PyGeometryData"], [9, 0, 0, "-", "PyGridData"], [12, 0, 0, "-", "ThriftClientRouter"]], "awips.dataaccess.CombinedTimeQuery": [[1, 1, 1, "", "getAvailableTimes"]], "awips.dataaccess.DataAccessLayer": [[2, 1, 1, "", "changeEDEXHost"], [2, 1, 1, "", "getAvailableLevels"], [2, 1, 1, "", "getAvailableLocationNames"], [2, 1, 1, "", "getAvailableParameters"], [2, 1, 1, "", "getAvailableTimes"], [2, 1, 1, "", "getForecastRun"], [2, 1, 1, "", "getGeometryData"], [2, 1, 1, "", "getGridData"], [2, 1, 1, "", "getIdentifierValues"], [2, 1, 1, "", "getMetarObs"], [2, 1, 1, "", "getOptionalIdentifiers"], [2, 1, 1, "", "getRadarProductIDs"], [2, 1, 1, "", "getRadarProductNames"], [2, 1, 1, "", "getRequiredIdentifiers"], [2, 1, 1, "", "getSupportedDatatypes"], [2, 1, 1, "", "getSynopticObs"], [2, 1, 1, "", "newDataRequest"], [2, 1, 1, "", "setLazyLoadGridLatLon"]], "awips.dataaccess.IDataRequest": [[4, 5, 1, "", "__weakref__"], [4, 3, 1, "", "addIdentifier"], [4, 3, 1, "", "getDatatype"], [4, 3, 1, "", "getEnvelope"], [4, 3, 1, "", "getIdentifiers"], [4, 3, 1, "", "getLevels"], [4, 3, 1, "", "getLocationNames"], [4, 3, 1, "", "setDatatype"], [4, 3, 1, "", "setEnvelope"], [4, 3, 1, "", "setLevels"], [4, 3, 1, "", "setLocationNames"], [4, 3, 1, "", "setParameters"]], "awips.dataaccess.ModelSounding": [[6, 1, 1, "", "changeEDEXHost"], [6, 1, 1, "", "getSounding"]], "awips.dataaccess.PyData": [[7, 2, 1, "", "PyData"]], "awips.dataaccess.PyData.PyData": [[7, 3, 1, "", "getAttribute"], [7, 3, 1, "", "getAttributes"], [7, 3, 1, "", "getDataTime"], [7, 3, 1, "", "getLevel"], [7, 3, 1, "", "getLocationName"]], "awips.dataaccess.PyGeometryData": [[8, 2, 1, "", "PyGeometryData"]], "awips.dataaccess.PyGeometryData.PyGeometryData": [[8, 3, 1, "", "getGeometry"], [8, 3, 1, "", "getNumber"], [8, 3, 1, "", "getParameters"], [8, 3, 1, "", "getString"], [8, 3, 1, "", "getType"], [8, 3, 1, "", "getUnit"]], "awips.dataaccess.PyGridData": [[9, 2, 1, "", "PyGridData"]], "awips.dataaccess.PyGridData.PyGridData": [[9, 3, 1, "", "getLatLonCoords"], [9, 3, 1, "", "getParameter"], [9, 3, 1, "", "getRawData"], [9, 3, 1, "", "getUnit"]], "awips.dataaccess.ThriftClientRouter": [[12, 2, 1, "", "LazyGridLatLon"], [12, 2, 1, "", "ThriftClientRouter"]], "awips.dataaccess.ThriftClientRouter.ThriftClientRouter": [[12, 3, 1, "", "getAvailableLevels"], [12, 3, 1, "", "getAvailableLocationNames"], [12, 3, 1, "", "getAvailableParameters"], [12, 3, 1, "", "getAvailableTimes"], [12, 3, 1, "", "getGeometryData"], [12, 3, 1, "", "getGridData"], [12, 3, 1, "", "getIdentifierValues"], [12, 3, 1, "", "getNotificationFilter"], [12, 3, 1, "", "getOptionalIdentifiers"], [12, 3, 1, "", "getRequiredIdentifiers"], [12, 3, 1, "", "getSupportedDatatypes"], [12, 3, 1, "", "newDataRequest"], [12, 3, 1, "", "setLazyLoadGridLatLon"]], "awips.gfe": [[5, 0, 0, "-", "IFPClient"]], "awips.gfe.IFPClient": [[5, 2, 1, "", "IFPClient"]], "awips.gfe.IFPClient.IFPClient": [[5, 3, 1, "", "commitGrid"], [5, 3, 1, "", "getGridInventory"], [5, 3, 1, "", "getParmList"], [5, 3, 1, "", "getSelectTR"], [5, 3, 1, "", "getSiteID"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method", "4": "py:exception", "5": "py:attribute"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "exception", "Python exception"], "5": ["py", "attribute", "Python attribute"]}, "titleterms": {"about": 0, "unidata": 0, "awip": [0, 33], "licens": 0, "edex": [0, 17, 20, 22, 23, 24, 31], "cave": 0, "alertviz": 0, "ldm": 0, "edexbridg": 0, "qpid": 0, "postgresql": 0, "hdf5": 0, "pypi": 0, "httpd": 0, "combinedtimequeri": 1, "dataaccesslay": 2, "datetimeconvert": 3, "idatarequest": 4, "newdatarequest": 4, "ifpclient": 5, "modelsound": 6, "pydata": 7, "pygeometrydata": 8, "pygriddata": 9, "radarcommon": 10, "thriftclient": 11, "thriftclientrout": 12, "timeutil": 13, "api": 14, "document": [14, 17, 18, 20, 23, 24, 31], "avail": [15, 22, 25, 29], "data": [15, 16, 17, 18, 20, 22, 23, 25, 31, 32, 33], "type": [15, 22], "satellit": [15, 29], "binlightn": 15, "grid": [15, 18, 22], "warn": [15, 31], "radar": [15, 26], "develop": 16, "guid": 16, "write": [16, 20], "new": [16, 22], "factori": 16, "regist": 16, "framework": [16, 33], "retriev": 16, "us": [16, 18, 23, 24, 31, 33], "background": 16, "design": 16, "implement": 16, "how": 16, "user": 16, "plugin": 16, "contribut": 16, "support": [16, 22], "datatyp": 16, "work": 16, "when": 16, "receiv": 16, "request": [16, 18, 22], "interfac": 16, "java": 16, "onli": [16, 33], "color": [17, 18], "surfac": [17, 28], "temperatur": 17, "plot": [17, 18, 23, 28, 31, 32], "object": [17, 18, 20, 22, 23, 24, 31], "tabl": [17, 18, 20, 22, 23, 24, 31], "content": [17, 18, 20, 22, 23, 24, 31], "1": [17, 18, 20, 22, 23, 24, 31], "import": [17, 18, 20, 22, 23, 24, 31], "2": [17, 18, 20, 22, 23, 24, 31], "initi": [17, 20, 23, 24, 31], "setup": [17, 20, 23, 31], "geograph": 17, "filter": [17, 20, 23, 24, 31], "connect": [17, 20, 22, 23, 24, 31], "3": [17, 18, 20, 22, 23, 24, 31], "time": [17, 18, 22, 23, 31], "4": [17, 18, 20, 22, 23, 24, 31], "access": [17, 33], "convert": 17, "temp": 17, "5": [17, 18, 20, 22, 23, 24, 31], "defin": [17, 18, 20], "threshold": 17, "6": [17, 18, 20, 22, 23, 24, 31], "7": [17, 22, 23, 24, 31], "see": [17, 18, 20, 22, 23, 24, 31], "also": [17, 18, 20, 22, 23, 24, 31], "addit": [17, 18, 20, 23, 24, 31], "limit": 18, "result": 18, "base": 18, "function": [18, 20, 23, 24, 31], "make_map": [18, 24, 31], "pcolormesh": 18, "contourf": 18, "relat": [18, 20, 22, 23, 31], "notebook": [18, 20, 22, 23, 31], "forecast": 19, "model": [19, 25], "vertic": 19, "sound": [19, 25, 30], "skew": 19, "t": 19, "log": 19, "p": 19, "comparison": 19, "goe": [20, 21, 29], "cira": 20, "product": [20, 29], "writer": 20, "paramet": [20, 21, 22, 23, 25], "definit": 20, "set_siz": 20, "write_img": 20, "get": [20, 22, 23, 31], "out": 20, "output": 20, "locat": [20, 22, 23, 25], "imag": 20, "geostationari": 21, "lightn": 21, "mapper": 21, "glm": 21, "sourc": [21, 29, 33], "level": 22, "list": 22, "creat": [22, 24, 29, 31], "set": [22, 23], "8": [22, 24, 31], "9": [22, 24, 31], "10": [22, 24], "metar": [23, 28], "station": 23, "metpi": [23, 25], "get_cloud_cov": 23, "name": 23, "extract": [23, 31], "all": 23, "popul": 23, "dictionari": 23, "map": 24, "resourc": 24, "topographi": 24, "from": [24, 25], "cwa": 24, "draw": [24, 31], "merg": 24, "interst": 24, "boundari": [24, 31], "nearbi": 24, "citi": 24, "lake": 24, "major": 24, "river": 24, "11": 24, "calcul": 25, "dewpoint": 25, "specif": 25, "humid": 25, "skewt": 25, "hodograph": 25, "nexrad": 26, "level3": 26, "precip": 27, "accumul": 27, "region": [27, 28], "Of": 27, "interest": 27, "ob": 28, "synopt": 28, "sfcob": 28, "both": 28, "synop": 28, "imageri": 29, "entiti": 29, "sector": 29, "16": 29, "mesoscal": 29, "upper": 30, "air": 30, "bufr": 30, "watch": 31, "advisori": 31, "get_color": 31, "get_titl": 31, "signific": 31, "sig": 31, "constant": 31, "phensig": 31, "geometri": 31, "state": 31, "polit": 31, "legend": 31, "wwa": 31, "exampl": [32, 33], "python": 33, "pre": 33, "requisit": 33, "softwar": 33, "packag": 33, "instal": 33, "pip": 33, "conda": 33, "code": 33, "question": 33, "contact": 33}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file