diff --git a/_images/Regional_Surface_Obs_Plot_11_0.png b/_images/Regional_Surface_Obs_Plot_11_0.png deleted file mode 100644 index 194632b..0000000 Binary files a/_images/Regional_Surface_Obs_Plot_11_0.png and /dev/null differ diff --git a/_images/Regional_Surface_Obs_Plot_13_0.png b/_images/Regional_Surface_Obs_Plot_13_0.png deleted file mode 100644 index 4dce664..0000000 Binary files a/_images/Regional_Surface_Obs_Plot_13_0.png and /dev/null differ diff --git a/_images/Regional_Surface_Obs_Plot_42_1.png b/_images/Regional_Surface_Obs_Plot_42_1.png new file mode 100644 index 0000000..01b08f2 Binary files /dev/null and b/_images/Regional_Surface_Obs_Plot_42_1.png differ diff --git a/_images/Regional_Surface_Obs_Plot_44_0.png b/_images/Regional_Surface_Obs_Plot_44_0.png new file mode 100644 index 0000000..b457cb5 Binary files /dev/null and b/_images/Regional_Surface_Obs_Plot_44_0.png differ diff --git a/_images/Regional_Surface_Obs_Plot_46_0.png b/_images/Regional_Surface_Obs_Plot_46_0.png new file mode 100644 index 0000000..f1e7ca4 Binary files /dev/null and b/_images/Regional_Surface_Obs_Plot_46_0.png differ diff --git a/_images/Regional_Surface_Obs_Plot_48_0.png b/_images/Regional_Surface_Obs_Plot_48_0.png new file mode 100644 index 0000000..bac9342 Binary files /dev/null and b/_images/Regional_Surface_Obs_Plot_48_0.png differ diff --git a/_images/Regional_Surface_Obs_Plot_4_1.png b/_images/Regional_Surface_Obs_Plot_4_1.png deleted file mode 100644 index 9988aec..0000000 Binary files a/_images/Regional_Surface_Obs_Plot_4_1.png and /dev/null differ diff --git a/_images/Regional_Surface_Obs_Plot_8_0.png b/_images/Regional_Surface_Obs_Plot_8_0.png deleted file mode 100644 index 70666db..0000000 Binary files a/_images/Regional_Surface_Obs_Plot_8_0.png and /dev/null differ diff --git a/_sources/examples/generated/Regional_Surface_Obs_Plot.rst.txt b/_sources/examples/generated/Regional_Surface_Obs_Plot.rst.txt index c7d47a0..534f0ab 100644 --- a/_sources/examples/generated/Regional_Surface_Obs_Plot.rst.txt +++ b/_sources/examples/generated/Regional_Surface_Obs_Plot.rst.txt @@ -2,11 +2,81 @@ 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 -*sfcobs*). Because we are using the AWIPS Map Database for state and -county boundaries, there is no use of Cartopy ``cfeature`` in this -exercise. +Python-AWIPS Tutorial Notebook + +-------------- + +Objectives +========== + +- Use python-awips to connect to an edex server +- Create a plot for a regional area of the United States (Florida) +- Define and filter data request for METAR and Synoptic surface obs +- Use the maps database to request and draw state boundaries (no use of + Cartopy.Feature in this example) +- Stylize and plot surface data using Metpy + +-------------- + +Table of Contents +----------------- + +| `1 + Imports `__\ +| `2 Function: + get_cloud_cover() `__\ +| `3 Function: + make_map() `__\ +| `4 Function: + extract_plotting_data() `__\ +| `5 Function: + plot_data() `__\ +| `6 Initial + Setup `__\ +|     `6.1 Initial EDEX + Connection `__\ +|     `6.2 Maps Request and + Response `__\ +|     `6.3 Define Geographic + Filter `__\ +|     `6.4 Define Time + Filter `__\ +|     `6.5 Define Common Parameters for Data + Requests `__\ +|     `6.6 Define METAR + Request `__\ +|     `6.7 Define Synoptic + Request `__\ +| `7 Get the + Data! `__\ +|     `7.1 Get the EDEX + Responses `__\ +|     `7.2 Extract Plotting + Data `__\ +| `8 Plot the + Data `__\ +|     `8.1 Draw the + Region `__\ +|     `8.2 Plot METAR + Data `__\ +|     `8.3 Plot Synoptic + Data `__\ +|     `8.4 Plot both METAR and Synoptic + Data `__\ +| `9 See + Also `__\ +|     `9.1 Related + Notebooks `__\ +|     `9.2 Additional + Documentation `__\ + +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 @@ -21,78 +91,45 @@ exercise. import matplotlib.pyplot as plt from metpy.units import units from metpy.calc import wind_components - from metpy.plots import simple_layout, StationPlot, StationPlotLayout + from metpy.plots import simple_layout, StationPlot, StationPlotLayout, sky_cover import warnings - %matplotlib inline - - def get_cloud_cover(code): - if 'OVC' in code: - return 1.0 - elif 'BKN' in code: - return 6.0/8.0 - elif 'SCT' in code: - return 4.0/8.0 - elif 'FEW' in code: - return 2.0/8.0 - else: - return 0 + +`Top `__ + +-------------- + +Function: get_cloud_cover() +--------------------------- + +Returns the cloud coverage values as integer codes (0 through 8). .. code:: ipython3 - # EDEX request for a single state - edexServer = "edex-cloud.unidata.ucar.edu" - DataAccessLayer.changeEDEXHost(edexServer) - request = DataAccessLayer.newDataRequest('maps') - request.addIdentifier('table', 'mapdata.states') - request.addIdentifier('state', 'FL') - request.addIdentifier('geomField', 'the_geom') - request.setParameters('state','name','lat','lon') - response = DataAccessLayer.getGeometryData(request) - record = response[0] - print("Found " + str(len(response)) + " MultiPolygon") - state={} - state['name'] = record.getString('name') - state['state'] = record.getString('state') - state['lat'] = record.getNumber('lat') - state['lon'] = record.getNumber('lon') - #state['geom'] = record.getGeometry() - state['bounds'] = record.getGeometry().bounds - print(state['name'], state['state'], state['lat'], state['lon'], state['bounds']) - print() - - # EDEX request for multiple states - request = DataAccessLayer.newDataRequest('maps') - request.addIdentifier('table', 'mapdata.states') - request.addIdentifier('geomField', 'the_geom') - request.addIdentifier('inLocation', 'true') - request.addIdentifier('locationField', 'state') - request.setParameters('state','name','lat','lon') - request.setLocationNames('FL','GA','MS','AL','SC','LA') - response = DataAccessLayer.getGeometryData(request) - print("Found " + str(len(response)) + " MultiPolygons") - - # Append each geometry to a numpy array - states = np.array([]) - for ob in response: - print(ob.getString('name'), ob.getString('state'), ob.getNumber('lat'), ob.getNumber('lon')) - states = np.append(states,ob.getGeometry()) + def get_cloud_cover(code): + if 'OVC' in code: + return 8 + elif 'BKN' in code: + return 6 + elif 'SCT' in code: + return 4 + elif 'FEW' in code: + return 2 + else: + return 0 +Top -.. parsed-literal:: +-------------- - Found 1 MultiPolygon - Florida FL 28.67402 -82.50934 (-87.63429260299995, 24.521051616000022, -80.03199876199994, 31.001012802000048) - - Found 6 MultiPolygons - Florida FL 28.67402 -82.50934 - Georgia GA 32.65155 -83.44848 - Louisiana LA 31.0891 -92.02905 - Alabama AL 32.79354 -86.82676 - Mississippi MS 32.75201 -89.66553 - South Carolina SC 33.93574 -80.89899 +Function: make_map() +-------------------- - -Now make sure we can plot the states with a lat/lon grid. +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 +(plt) `__ +to create a figure and axis. The geographic extent is set and lat/lon +gridlines are added for context. .. code:: ipython3 @@ -104,12 +141,404 @@ Now make sure we can plot the states with a lat/lon grid. gl.xformatter = LONGITUDE_FORMATTER gl.yformatter = LATITUDE_FORMATTER return fig, ax + +`Top `__ + +-------------- + +Function: extract_plotting_data() +--------------------------------- + +Grab the simple variables out of the response data we have (attaching +correct units), and put them into a dictionary that we will hand the +plotting function later: + +- Get wind components from speed and direction +- Convert cloud coverage values to integer codes [0 - 8] +- Assign temperature, dewpoint, and sea level pressure the the correct + units +- Account for missing values (by using ``nan``) + +.. code:: ipython3 + + def extract_plotting_data(arr, datatype): + """ + Extract all necessary data for plotting for either + datatype: 'obs' or 'sfcobs' + """ + + data = dict() + data['latitude'] = np.array(arr['latitude']) + data['longitude'] = np.array(arr['longitude']) + tmp = np.array(arr['temperature'], dtype=float) + dpt = np.array(arr['dewpoint'], dtype=float) + direction = np.array(arr['windDir']) - # buffer our bounds by +/i degrees lat/lon - bounds = state['bounds'] - bbox=[bounds[0]-3,bounds[2]+3,bounds[1]-1.5,bounds[3]+1.5] + # Suppress nan masking warnings + warnings.filterwarnings("ignore",category =RuntimeWarning) + + # Account for missing values + tmp[tmp == -9999.0] = 'nan' + dpt[dpt == -9999.] = 'nan' + direction[direction == -9999.0] = 'nan' + + data['air_pressure_at_sea_level'] = np.array(arr['seaLevelPress'])* units('mbar') + u, v = wind_components(np.array(arr['windSpeed']) * units('knots'), + direction * units.degree) + + data['eastward_wind'], data['northward_wind'] = u, v + data['present_weather'] = arr['presWeather'] + + # metars uses 'stationName' for its identifier and temps are in deg C + # metars also has sky coverage + if datatype == "obs": + data['stid'] = np.array(arr['stationName']) + data['air_temperature'] = tmp * units.degC + data['dew_point_temperature'] = dpt * units.degC + data['cloud_coverage'] = [int(get_cloud_cover(x)) for x in arr['skyCover']] + + # synoptic obs uses 'stationId', and temps are in Kelvin + elif datatype == "sfcobs": + data['stid'] = np.array(arr['stationId']) + data['air_temperature'] = tmp * units.kelvin + data['dew_point_temperature'] = dpt * units.kelvin + + return data + +`Top `__ + +-------------- + +Function: plot_data() +--------------------- + +This function makse use of Metpy.StationPlotLayout and Metpy.StationPlot +to add all surface observation data to our plot. The logic is very +similar for both METAR and Synoptic data, so a ``datatype`` argument is +used to distinguish between which data is being drawn, and then draws +the appropriate features. + +This function plots: - Wind barbs - Air temperature - Dew point +temperature - Precipitation - Cloud coverage (for METARS) + +.. code:: ipython3 + + def plot_data(data, title, axes, datatype): + 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') + # metars has sky coverage + if datatype == 'obs': + custom_layout.add_symbol('C', 'cloud_coverage', sky_cover) + axes.set_title(title) + stationplot = StationPlot(axes, data['longitude'], data['latitude'], clip_on=True, + transform=ccrs.PlateCarree(), fontsize=10) + custom_layout.plot(stationplot, data) + +`Top `__ + +-------------- + +Initial Setup +------------- + +Connect to an EDEX server and define several `new data request +objects `__. + +In this example we’re using multiple different datatypes from EDEX, so +we’ll create a request object for each of the following: - `The states +outlines (datatype maps) <#Define-Maps-Request>`__ - `The METAR data +(datatype obs) <#Define-METAR-Request>`__ - `The Synoptic data (datatype +sfc) <#Define-Synoptic-Request>`__ + +Some of the request use filters, so we’ll also create several filters +than can be used for the various data requests as well. + +Initial EDEX Connection +~~~~~~~~~~~~~~~~~~~~~~~ + +First we establish a connection to Unidata’s public EDEX server. + +.. code:: ipython3 + + # EDEX connection + edexServer = "edex-cloud.unidata.ucar.edu" + DataAccessLayer.changeEDEXHost(edexServer) + +Maps Request and Response +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The maps data request will give us data to draw our state outlines of +interest (Florida and its neighboring states). We will retrieve the data +response object here so we can create a geographic filter for the METAR +and Synoptic data requests. + +.. code:: ipython3 + + # Define the maps request + maps_request = DataAccessLayer.newDataRequest('maps') + # filter for multiple states + maps_request = DataAccessLayer.newDataRequest('maps') + maps_request.addIdentifier('table', 'mapdata.states') + maps_request.addIdentifier('geomField', 'the_geom') + maps_request.addIdentifier('inLocation', 'true') + maps_request.addIdentifier('locationField', 'state') + maps_request.setParameters('state','name','lat','lon') + maps_request.setLocationNames('FL','GA','MS','AL','SC','LA') + maps_response = DataAccessLayer.getGeometryData(maps_request) + print("Found " + str(len(maps_response)) + " MultiPolygons") + + +.. parsed-literal:: + + Found 6 MultiPolygons + + +Define Geographic Filter +~~~~~~~~~~~~~~~~~~~~~~~~ + +The previous EDEX request limited the data by using a **parameter** for +the maps database called **state**. We can take the results from that +filter and get a geographic **envelope** based on the Florida polygon +that was returned from the previous cell. + +.. container:: alert-warning + + :: + + Note: Without such a filter you may be requesting many tens of thousands of records. + +.. code:: ipython3 + + # Append each geometry to a numpy array + states = np.array([]) + for ob in maps_response: + print(ob.getString('name'), ob.getString('state'), ob.getNumber('lat'), ob.getNumber('lon')) + states = np.append(states,ob.getGeometry()) + # if this is Florida grab geographic info + if ob.getString('name') == "Florida": + bounds = ob.getGeometry().bounds + fl_lat = ob.getNumber('lat') + fl_lon = ob.getNumber('lon') + + if bounds is None: + print("Error, no record found for Florida!") + + else: + # buffer our bounds by +/i degrees lat/lon + bbox=[bounds[0]-3,bounds[2]+3,bounds[1]-1.5,bounds[3]+1.5] + + # Create envelope geometry + envelope = Polygon([(bbox[0],bbox[2]),(bbox[0],bbox[3]), + (bbox[1], bbox[3]),(bbox[1],bbox[2]), + (bbox[0],bbox[2])]) + + print(envelope) + + +.. parsed-literal:: + + Florida FL 28.67402 -82.50934 + Georgia GA 32.65155 -83.44848 + Louisiana LA 31.0891 -92.02905 + Alabama AL 32.79354 -86.82676 + Mississippi MS 32.75201 -89.66553 + South Carolina SC 33.93574 -80.89899 + POLYGON ((-90.63429260299995 23.02105161600002, -90.63429260299995 32.50101280200016, -77.03199876199994 32.50101280200016, -77.03199876199994 23.02105161600002, -90.63429260299995 23.02105161600002)) + + +Define Time Filter +~~~~~~~~~~~~~~~~~~ + +Both the METAR and Synoptic datasets should be filtered by time to avoid +requesting an unreasonable amount of data. By defining one filter now, +we can use it in both of their data requests to EDEX. + +.. container:: alert-info + + :: + + Note: Here we will use the most recent hour as our default filter. Try adjusting the timerange and see the difference in the final plots. + +.. code:: ipython3 + + # Filter for the last hour + lastHourDateTime = datetime.utcnow() - timedelta(minutes = 60) + start = lastHourDateTime.strftime('%Y-%m-%d %H:%M:%S') + end = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S') + + beginRange = datetime.strptime( start , "%Y-%m-%d %H:%M:%S") + endRange = datetime.strptime( end , "%Y-%m-%d %H:%M:%S") + timerange = TimeRange(beginRange, endRange) + + print(timerange) + + +.. parsed-literal:: + + (Nov 11 22 19:00:54 , Nov 11 22 20:00:54 ) + + +Define Common Parameters for Data Requests +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +METAR obs and Synoptic obs share several of the same parameters. By +defining them here, they can be reused for both of the requests and this +makes our code more efficient. + +.. code:: ipython3 + + shared_params = ["timeObs", "longitude", "latitude", "temperature", + "dewpoint", "windDir", "windSpeed", "seaLevelPress", + "presWeather", "skyLayerBase"] + print(shared_params) + + +.. parsed-literal:: + + ['timeObs', 'longitude', 'latitude', 'temperature', 'dewpoint', 'windDir', 'windSpeed', 'seaLevelPress', 'presWeather', 'skyLayerBase'] + + +Define METAR Request +~~~~~~~~~~~~~~~~~~~~ + +To get METAR data we must use the **obs** datatype. To help limit the +amount of data returned, we will narrow the request by using a +geographic **envelope**, setting the request **parameters**, and using +**timerange** as a time filter. + +.. code:: ipython3 + + # New metar request + metar_request = DataAccessLayer.newDataRequest("obs", envelope=envelope) + + # metar specifc parameters + metar_params = ["stationName", "skyCover"] + # combine all parameters + all_metar_params = shared_params + metar_params + # set the parameters on the metar request + metar_request.setParameters(*(all_metar_params)) + + print(metar_request) + + +.. parsed-literal:: + + DefaultDataRequest(datatype=obs, identifiers={}, parameters=['timeObs', 'longitude', 'latitude', 'temperature', 'dewpoint', 'windDir', 'windSpeed', 'seaLevelPress', 'presWeather', 'skyLayerBase', 'stationName', 'skyCover'], levels=[], locationNames=[], envelope=) + + +Define Synoptic Request +~~~~~~~~~~~~~~~~~~~~~~~ + +Similar to the request above, we will limit the amount of data returned +by using a geographic **envelope**, setting the request **parameters**, +and using **timerange** as a time filter. + +However, in order to access synoptic observations we will use the +**sfcobs** datatype. + +.. code:: ipython3 + + # New sfcobs/SYNOP request + syn_request = DataAccessLayer.newDataRequest("sfcobs", envelope=envelope) + + # (sfcobs) uses stationId, while (obs) uses stationName + syn_params = ["stationId"] + # combine all parameters + all_syn_params = shared_params + syn_params + # set the parameters on the synoptic request + syn_request.setParameters(*(all_syn_params)) + + print(syn_request) + + +.. parsed-literal:: + + DefaultDataRequest(datatype=sfcobs, identifiers={}, parameters=['timeObs', 'longitude', 'latitude', 'temperature', 'dewpoint', 'windDir', 'windSpeed', 'seaLevelPress', 'presWeather', 'skyLayerBase', 'stationId'], levels=[], locationNames=[], envelope=) + + +`Top `__ + +-------------- + +Get the Data! +------------- + +We have already obtained our maps data, but we still have to collect our +observation data. + +Get the EDEX Responses +~~~~~~~~~~~~~~~~~~~~~~ + +.. code:: ipython3 + + # METARs data + metar_response = DataAccessLayer.getGeometryData(metar_request,timerange) + # function getMetarObs was added in python-awips 18.1.4 + metars = DataAccessLayer.getMetarObs(metar_response) + print("Found " + str(len(metar_response)) + " METAR records") + print("\tUsing " + str(len(metars['temperature'])) + " temperature records") + + # Synoptic data + syn_response = DataAccessLayer.getGeometryData(syn_request,timerange) + # function getSynopticObs was added in python-awips 18.1.4 + synoptic = DataAccessLayer.getSynopticObs(syn_response) + print("Found " + str(len(syn_response)) + " Synoptic records") + print("\tUsing " + str(len(synoptic['temperature'])) + " temperature records") + + +.. parsed-literal:: + + Found 4116 METAR records + Using 179 temperature records + Found 259 Synoptic records + Using 63 temperature records + + +Extract Plotting Data +~~~~~~~~~~~~~~~~~~~~~ + +.. code:: ipython3 + + # Pull all necessary plotting information for the metar data + metars_data = extract_plotting_data(metars, 'obs') + print(str(len(metars_data['stid'])) + " METARs stations") + + # Pull all necessary plotting information for the synoptic data + synoptic_data = extract_plotting_data(synoptic, 'sfcobs') + print(str(len(synoptic_data['stid'])) + " Synoptic stations") + + +.. parsed-literal:: + + 179 METARs stations + 63 Synoptic stations + + +`Top `__ + +-------------- + +Plot the Data +------------- + +Draw the Region +~~~~~~~~~~~~~~~ + +Here we will draw our region by using the **states** polygons we +retreived from EDEX `earlier in this +example <#Maps-Request-and-Response>`__. To create this plot we use the +`make_map() <#Function:-make_map()>`__ function which also adds lines of +latitude and longitude for additional context. + +.. code:: ipython3 + + # Create the figure and axes used for the plot fig, ax = make_map(bbox=bbox) + # Create a feature based off our states polygons shape_feature = ShapelyFeature(states,ccrs.PlateCarree(), facecolor='none', linestyle="-",edgecolor='#000000',linewidth=2) ax.add_feature(shape_feature) @@ -119,226 +548,140 @@ Now make sure we can plot the states with a lat/lon grid. .. parsed-literal:: - + -.. image:: Regional_Surface_Obs_Plot_files/Regional_Surface_Obs_Plot_4_1.png +.. image:: Regional_Surface_Obs_Plot_files/Regional_Surface_Obs_Plot_42_1.png --------------- +Plot METAR Data +~~~~~~~~~~~~~~~ -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. +On the same axes (**ax**) and figure (**fig**) plot the METAR data. .. code:: ipython3 - # Create envelope geometry - envelope = Polygon([(bbox[0],bbox[2]),(bbox[0],bbox[3]), - (bbox[1], bbox[3]),(bbox[1],bbox[2]), - (bbox[0],bbox[2])]) - - # New obs request - DataAccessLayer.changeEDEXHost(edexServer) - request = DataAccessLayer.newDataRequest("obs", envelope=envelope) - availableProducts = DataAccessLayer.getAvailableParameters(request) - single_value_params = ["timeObs", "stationName", "longitude", "latitude", - "temperature", "dewpoint", "windDir", - "windSpeed", "seaLevelPress"] - multi_value_params = ["presWeather", "skyCover", "skyLayerBase"] - params = single_value_params + multi_value_params - request.setParameters(*(params)) - - # Time range - lastHourDateTime = datetime.utcnow() - timedelta(minutes = 60) - start = lastHourDateTime.strftime('%Y-%m-%d %H:%M:%S') - end = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S') - - beginRange = datetime.strptime( start , "%Y-%m-%d %H:%M:%S") - endRange = datetime.strptime( end , "%Y-%m-%d %H:%M:%S") - timerange = TimeRange(beginRange, endRange) - # Get response - response = DataAccessLayer.getGeometryData(request,timerange) - # function getMetarObs was added in python-awips 18.1.4 - obs = DataAccessLayer.getMetarObs(response) - print("Found " + str(len(response)) + " records") - print("Using " + str(len(obs['temperature'])) + " temperature records") - - -.. parsed-literal:: - - Found 3468 records - Using 152 temperature records - - -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: - -- 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 - -.. code:: ipython3 - - data = dict() - data['stid'] = np.array(obs['stationName']) - data['latitude'] = np.array(obs['latitude']) - data['longitude'] = np.array(obs['longitude']) - tmp = np.array(obs['temperature'], dtype=float) - dpt = np.array(obs['dewpoint'], dtype=float) - - # Suppress nan masking warnings - warnings.filterwarnings("ignore",category =RuntimeWarning) - - tmp[tmp == -9999.0] = 'nan' - dpt[dpt == -9999.] = 'nan' - data['air_temperature'] = tmp * units.degC - data['dew_point_temperature'] = dpt * units.degC - data['air_pressure_at_sea_level'] = np.array(obs['seaLevelPress'])* units('mbar') - direction = np.array(obs['windDir']) - direction[direction == -9999.0] = 'nan' - 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'] - proj = ccrs.LambertConformal(central_longitude=state['lon'], central_latitude=state['lat'], - standard_parallels=[35]) - 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') - ax.set_title(str(response[-1].getDataTime()) + " | METAR Surface Obs | " + edexServer) - stationplot = StationPlot(ax, data['longitude'], data['latitude'], clip_on=True, - transform=ccrs.PlateCarree(), fontsize=10) - custom_layout.plot(stationplot, data) + # Create a title for the plot + title = str(metar_response[-1].getDataTime()) + " | METAR Surface Obs | " + edexServer + # Plot the station information for METARs data + plot_data(metars_data, title, ax, 'obs') + # Display the figure fig -.. image:: Regional_Surface_Obs_Plot_files/Regional_Surface_Obs_Plot_8_0.png +.. image:: Regional_Surface_Obs_Plot_files/Regional_Surface_Obs_Plot_44_0.png --------------- - Plot Synoptic (sfcobs) ----------------------- +~~~~~~~~~~~~~~~~~~~~~~ + +On a new axes and figure (**ax_syn**, **fig_syn**) plot the map and +synoptic data. .. code:: ipython3 - # New sfcobs/SYNOP request - DataAccessLayer.changeEDEXHost(edexServer) - request = DataAccessLayer.newDataRequest("sfcobs", envelope=envelope) - availableProducts = DataAccessLayer.getAvailableParameters(request) - # (sfcobs) uses stationId, while (obs) uses stationName, - # the rest of these parameters are the same. - single_value_params = ["timeObs", "stationId", "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 - request.setParameters(*(params)) - - # Time range - lastHourDateTime = datetime.utcnow() - timedelta(minutes = 60) - start = lastHourDateTime.strftime('%Y-%m-%d %H:%M:%S') - end = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S') - - beginRange = datetime.strptime( start , "%Y-%m-%d %H:%M:%S") - endRange = datetime.strptime( end , "%Y-%m-%d %H:%M:%S") - timerange = TimeRange(beginRange, endRange) - - # Get response - response = DataAccessLayer.getGeometryData(request,timerange) - # function getSynopticObs was added in python-awips 18.1.4 - sfcobs = DataAccessLayer.getSynopticObs(response) - print("Found " + str(len(response)) + " records") - print("Using " + str(len(sfcobs['temperature'])) + " temperature records") - - -.. parsed-literal:: - - Found 260 records - Using 78 temperature records - - -.. code:: ipython3 - - data = dict() - data['stid'] = np.array(sfcobs['stationId']) - data['lat'] = np.array(sfcobs['latitude']) - data['lon'] = np.array(sfcobs['longitude']) - - # Synop/sfcobs temps are stored in kelvin (degC for METAR/obs) - tmp = np.array(sfcobs['temperature'], dtype=float) - dpt = np.array(sfcobs['dewpoint'], dtype=float) - direction = np.array(sfcobs['windDir']) - # Account for missing values - tmp[tmp == -9999.0] = 'nan' - dpt[dpt == -9999.] = 'nan' - direction[direction == -9999.0] = 'nan' - - data['air_temperature'] = tmp * units.kelvin - data['dew_point_temperature'] = dpt * units.kelvin - data['air_pressure_at_sea_level'] = np.array(sfcobs['seaLevelPress'])* units('mbar') - try: - data['eastward_wind'], data['northward_wind'] = wind_components( - np.array(sfcobs['windSpeed']) * units('knots'),direction * units.degree) - data['present_weather'] = sfcobs['presWeather'] - except ValueError: - pass - - fig_synop, ax_synop = make_map(bbox=bbox) + # Create a new figure and axes for the synoptic data + fig_syn, ax_syn = make_map(bbox=bbox) + # Create the states feature from the polygons shape_feature = ShapelyFeature(states,ccrs.PlateCarree(), facecolor='none', linestyle="-",edgecolor='#000000',linewidth=2) - ax_synop.add_feature(shape_feature) - - 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') - ax_synop.set_title(str(response[-1].getDataTime()) + " | SYNOP Surface Obs | " + edexServer) - stationplot = StationPlot(ax_synop, data['lon'], data['lat'], clip_on=True, - transform=ccrs.PlateCarree(), fontsize=10) - custom_layout.plot(stationplot, data) + ax_syn.add_feature(shape_feature) + # Create a title for the figure + title = str(syn_response[-1].getDataTime()) + " | SYNOP Surface Obs | " + edexServer + # Draw the synoptic data + plot_data(synoptic_data, title, ax_syn, 'sfcobs') -.. image:: Regional_Surface_Obs_Plot_files/Regional_Surface_Obs_Plot_11_0.png +.. image:: Regional_Surface_Obs_Plot_files/Regional_Surface_Obs_Plot_46_0.png --------------- +Plot both METAR and Synoptic Data +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Plot both METAR and SYNOP -------------------------- +Add the synoptic data to our first axes and figure (**ax**, **fig**) +that already contains our map and METARs data. .. code:: ipython3 - 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') - ax.set_title(str(response[-1].getDataTime()) + " | METAR/SYNOP Surface Obs | " + edexServer) - stationplot = StationPlot(ax, data['lon'], data['lat'], clip_on=True, - transform=ccrs.PlateCarree(), fontsize=10) - custom_layout.plot(stationplot, data) + # Create a title for both the METAR and Synopotic data + title = str(syn_response[-1].getDataTime()) + " | METAR & Synoptic Surface Obs | " + edexServer + # Draw the synoptic on the first axes that already has the metar data + plot_data(synoptic_data, title, ax, 'sfcobs') + # Display the figure fig -.. image:: Regional_Surface_Obs_Plot_files/Regional_Surface_Obs_Plot_13_0.png +.. image:: Regional_Surface_Obs_Plot_files/Regional_Surface_Obs_Plot_48_0.png + +`Top `__ + +-------------- + +See Also +-------- + +- `Aviation Weather Center Static METAR Plots + Information `__ + +Related Notebooks +~~~~~~~~~~~~~~~~~ + +- `Metar Station Plot with + MetPy `__ +- `Map Resources and + Topography `__ + +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 `__ + +**matplotlib:** + +- `matplotlib.pyplot() `__ +- `matplotlib.pyplot.figure() `__ +- `ax.set_extent `__ +- `ax.set_title `__ + +**metpy:** + +- `metpy.calc.wind_components `__ +- `metpy.plots.StationPlot() `__ +- `metpy.plots.StationPlotLayout() `__ +- `metpy.units `__ + +`Top `__ + +-------------- diff --git a/examples/generated/Regional_Surface_Obs_Plot.html b/examples/generated/Regional_Surface_Obs_Plot.html index 5e6f222..9c63bb9 100644 --- a/examples/generated/Regional_Surface_Obs_Plot.html +++ b/examples/generated/Regional_Surface_Obs_Plot.html @@ -59,9 +59,19 @@
  • NEXRAD Level3 Radar
  • Precip Accumulation-Region Of Interest
  • Regional Surface Obs Plot
  • Satellite Imagery
  • @@ -102,11 +112,78 @@

    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 -sfcobs). Because we are using the AWIPS Map Database for state and -county boundaries, there is no use of Cartopy cfeature in this -exercise.

    +Python-AWIPS Tutorial Notebook

    +
    +
    +

    Objectives

    +
      +
    • Use python-awips to connect to an edex server

    • +
    • Create a plot for a regional area of the United States (Florida)

    • +
    • Define and filter data request for METAR and Synoptic surface obs

    • +
    • Use the maps database to request and draw state boundaries (no use of +Cartopy.Feature in this example)

    • +
    • Stylize and plot surface data using Metpy

    • +
    +
    +
    +

    Table of Contents

    + +
    +
    +

    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.

    from awips.dataaccess import DataAccessLayer
     from dynamicserialize.dstypes.com.raytheon.uf.common.time import TimeRange
     from datetime import datetime, timedelta
    @@ -118,75 +195,40 @@ exercise.

    import matplotlib.pyplot as plt from metpy.units import units from metpy.calc import wind_components -from metpy.plots import simple_layout, StationPlot, StationPlotLayout +from metpy.plots import simple_layout, StationPlot, StationPlotLayout, sky_cover import warnings -%matplotlib inline - -def get_cloud_cover(code): +
    +
    +

    Top

    +
    +
    +
    +

    Function: get_cloud_cover()

    +

    Returns the cloud coverage values as integer codes (0 through 8).

    +
    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
     
    -
    # EDEX request for a single state
    -edexServer = "edex-cloud.unidata.ucar.edu"
    -DataAccessLayer.changeEDEXHost(edexServer)
    -request = DataAccessLayer.newDataRequest('maps')
    -request.addIdentifier('table', 'mapdata.states')
    -request.addIdentifier('state', 'FL')
    -request.addIdentifier('geomField', 'the_geom')
    -request.setParameters('state','name','lat','lon')
    -response = DataAccessLayer.getGeometryData(request)
    -record = response[0]
    -print("Found " + str(len(response)) + " MultiPolygon")
    -state={}
    -state['name'] = record.getString('name')
    -state['state'] = record.getString('state')
    -state['lat'] = record.getNumber('lat')
    -state['lon'] = record.getNumber('lon')
    -#state['geom'] = record.getGeometry()
    -state['bounds'] = record.getGeometry().bounds
    -print(state['name'], state['state'], state['lat'], state['lon'], state['bounds'])
    -print()
    -
    -# EDEX request for multiple states
    -request = DataAccessLayer.newDataRequest('maps')
    -request.addIdentifier('table', 'mapdata.states')
    -request.addIdentifier('geomField', 'the_geom')
    -request.addIdentifier('inLocation', 'true')
    -request.addIdentifier('locationField', 'state')
    -request.setParameters('state','name','lat','lon')
    -request.setLocationNames('FL','GA','MS','AL','SC','LA')
    -response = DataAccessLayer.getGeometryData(request)
    -print("Found " + str(len(response)) + " MultiPolygons")
    -
    -# Append each geometry to a numpy array
    -states = np.array([])
    -for ob in response:
    -    print(ob.getString('name'), ob.getString('state'), ob.getNumber('lat'), ob.getNumber('lon'))
    -    states = np.append(states,ob.getGeometry())
    -
    -
    -
    Found 1 MultiPolygon
    -Florida FL 28.67402 -82.50934 (-87.63429260299995, 24.521051616000022, -80.03199876199994, 31.001012802000048)
    -
    -Found 6 MultiPolygons
    -Florida FL 28.67402 -82.50934
    -Georgia GA 32.65155 -83.44848
    -Louisiana LA 31.0891 -92.02905
    -Alabama AL 32.79354 -86.82676
    -Mississippi MS 32.75201 -89.66553
    -South Carolina SC 33.93574 -80.89899
    -
    -
    -

    Now make sure we can plot the states with a lat/lon grid.

    +

    Top

    +
    +
    +
    +

    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 +(plt) +to create a figure and axis. The geographic extent is set and lat/lon +gridlines are added for context.

    def make_map(bbox, proj=ccrs.PlateCarree()):
         fig, ax = plt.subplots(figsize=(16,12),subplot_kw=dict(projection=proj))
         ax.set_extent(bbox)
    @@ -195,205 +237,457 @@ exercise.

    gl.xformatter = LONGITUDE_FORMATTER gl.yformatter = LATITUDE_FORMATTER return fig, ax +
    +
    +

    Top

    +
    +
    +
    +

    Function: extract_plotting_data()

    +

    Grab the simple variables out of the response data we have (attaching +correct units), and put them into a dictionary that we will hand the +plotting function later:

    +
      +
    • Get wind components from speed and direction

    • +
    • Convert cloud coverage values to integer codes [0 - 8]

    • +
    • Assign temperature, dewpoint, and sea level pressure the the correct +units

    • +
    • Account for missing values (by using nan)

    • +
    +
    def extract_plotting_data(arr, datatype):
    +    """
    +    Extract all necessary data for plotting for either
    +    datatype: 'obs' or 'sfcobs'
    +    """
     
    -# buffer our bounds by +/i degrees lat/lon
    -bounds = state['bounds']
    -bbox=[bounds[0]-3,bounds[2]+3,bounds[1]-1.5,bounds[3]+1.5]
    +    data = dict()
    +    data['latitude']  = np.array(arr['latitude'])
    +    data['longitude'] = np.array(arr['longitude'])
    +    tmp = np.array(arr['temperature'], dtype=float)
    +    dpt = np.array(arr['dewpoint'], dtype=float)
    +    direction = np.array(arr['windDir'])
     
    +    # Suppress nan masking warnings
    +    warnings.filterwarnings("ignore",category =RuntimeWarning)
    +
    +    # Account for missing values
    +    tmp[tmp == -9999.0] = 'nan'
    +    dpt[dpt == -9999.] = 'nan'
    +    direction[direction == -9999.0] = 'nan'
    +
    +    data['air_pressure_at_sea_level'] = np.array(arr['seaLevelPress'])* units('mbar')
    +    u, v = wind_components(np.array(arr['windSpeed']) * units('knots'),
    +                               direction * units.degree)
    +
    +    data['eastward_wind'], data['northward_wind'] = u, v
    +    data['present_weather'] = arr['presWeather']
    +
    +
    +    # metars uses 'stationName' for its identifier and temps are in deg C
    +    # metars also has sky coverage
    +    if datatype == "obs":
    +        data['stid'] = np.array(arr['stationName'])
    +        data['air_temperature'] = tmp * units.degC
    +        data['dew_point_temperature'] = dpt * units.degC
    +        data['cloud_coverage'] = [int(get_cloud_cover(x)) for x in arr['skyCover']]
    +
    +    # synoptic obs uses 'stationId', and temps are in Kelvin
    +    elif datatype == "sfcobs":
    +        data['stid'] = np.array(arr['stationId'])
    +        data['air_temperature'] = tmp * units.kelvin
    +        data['dew_point_temperature'] = dpt * units.kelvin
    +
    +    return data
    +
    +
    +

    Top

    +
    +
    +
    +

    Function: plot_data()

    +

    This function makse use of Metpy.StationPlotLayout and Metpy.StationPlot +to add all surface observation data to our plot. The logic is very +similar for both METAR and Synoptic data, so a datatype argument is +used to distinguish between which data is being drawn, and then draws +the appropriate features.

    +

    This function plots: - Wind barbs - Air temperature - Dew point +temperature - Precipitation - Cloud coverage (for METARS)

    +
    def plot_data(data, title, axes, datatype):
    +    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')
    +    # metars has sky coverage
    +    if datatype == 'obs':
    +        custom_layout.add_symbol('C', 'cloud_coverage', sky_cover)
    +    axes.set_title(title)
    +    stationplot = StationPlot(axes, data['longitude'], data['latitude'], clip_on=True,
    +                              transform=ccrs.PlateCarree(), fontsize=10)
    +    custom_layout.plot(stationplot, data)
    +
    +
    +

    Top

    +
    +
    +
    +

    Initial Setup

    +

    Connect to an EDEX server and define several new data request +objects.

    +

    In this example we’re using multiple different datatypes from EDEX, so +we’ll create a request object for each of the following: - The states +outlines (datatype maps) - The METAR data +(datatype obs) - The Synoptic data (datatype +sfc)

    +

    Some of the request use filters, so we’ll also create several filters +than can be used for the various data requests as well.

    +
    +

    Initial EDEX Connection

    +

    First we establish a connection to Unidata’s public EDEX server.

    +
    # EDEX connection
    +edexServer = "edex-cloud.unidata.ucar.edu"
    +DataAccessLayer.changeEDEXHost(edexServer)
    +
    +
    +
    +
    +

    Maps Request and Response

    +

    The maps data request will give us data to draw our state outlines of +interest (Florida and its neighboring states). We will retrieve the data +response object here so we can create a geographic filter for the METAR +and Synoptic data requests.

    +
    # Define the maps request
    +maps_request = DataAccessLayer.newDataRequest('maps')
    +# filter for multiple states
    +maps_request = DataAccessLayer.newDataRequest('maps')
    +maps_request.addIdentifier('table', 'mapdata.states')
    +maps_request.addIdentifier('geomField', 'the_geom')
    +maps_request.addIdentifier('inLocation', 'true')
    +maps_request.addIdentifier('locationField', 'state')
    +maps_request.setParameters('state','name','lat','lon')
    +maps_request.setLocationNames('FL','GA','MS','AL','SC','LA')
    +maps_response = DataAccessLayer.getGeometryData(maps_request)
    +print("Found " + str(len(maps_response)) + " MultiPolygons")
    +
    +
    +
    Found 6 MultiPolygons
    +
    +
    +
    +
    +

    Define Geographic Filter

    +

    The previous EDEX request limited the data by using a parameter for +the maps database called state. We can take the results from that +filter and get a geographic envelope based on the Florida polygon +that was returned from the previous cell.

    +
    +
    <b>Note:</b>  Without such a filter you may be requesting many tens of thousands of records.
    +
    +
    +
    +
    # Append each geometry to a numpy array
    +states = np.array([])
    +for ob in maps_response:
    +    print(ob.getString('name'), ob.getString('state'), ob.getNumber('lat'), ob.getNumber('lon'))
    +    states = np.append(states,ob.getGeometry())
    +    # if this is Florida grab geographic info
    +    if ob.getString('name') == "Florida":
    +        bounds = ob.getGeometry().bounds
    +        fl_lat = ob.getNumber('lat')
    +        fl_lon = ob.getNumber('lon')
    +
    +if bounds is None:
    +    print("Error, no record found for Florida!")
    +
    +else:
    +    # buffer our bounds by +/i degrees lat/lon
    +    bbox=[bounds[0]-3,bounds[2]+3,bounds[1]-1.5,bounds[3]+1.5]
    +
    +    # Create envelope geometry
    +    envelope = Polygon([(bbox[0],bbox[2]),(bbox[0],bbox[3]),
    +                        (bbox[1], bbox[3]),(bbox[1],bbox[2]),
    +                        (bbox[0],bbox[2])])
    +
    +print(envelope)
    +
    +
    +
    Florida FL 28.67402 -82.50934
    +Georgia GA 32.65155 -83.44848
    +Louisiana LA 31.0891 -92.02905
    +Alabama AL 32.79354 -86.82676
    +Mississippi MS 32.75201 -89.66553
    +South Carolina SC 33.93574 -80.89899
    +POLYGON ((-90.63429260299995 23.02105161600002, -90.63429260299995 32.50101280200016, -77.03199876199994 32.50101280200016, -77.03199876199994 23.02105161600002, -90.63429260299995 23.02105161600002))
    +
    +
    +
    +
    +

    Define Time Filter

    +

    Both the METAR and Synoptic datasets should be filtered by time to avoid +requesting an unreasonable amount of data. By defining one filter now, +we can use it in both of their data requests to EDEX.

    +
    +
    <b>Note:</b>  Here we will use the most recent hour as our default filter.  Try adjusting the timerange and see the difference in the final plots.
    +
    +
    +
    +
    # Filter for the last hour
    +lastHourDateTime = datetime.utcnow() - timedelta(minutes = 60)
    +start = lastHourDateTime.strftime('%Y-%m-%d %H:%M:%S')
    +end = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
    +
    +beginRange = datetime.strptime( start , "%Y-%m-%d %H:%M:%S")
    +endRange = datetime.strptime( end , "%Y-%m-%d %H:%M:%S")
    +timerange = TimeRange(beginRange, endRange)
    +
    +print(timerange)
    +
    +
    +
    (Nov 11 22 19:00:54 , Nov 11 22 20:00:54 )
    +
    +
    +
    +
    +

    Define Common Parameters for Data Requests

    +

    METAR obs and Synoptic obs share several of the same parameters. By +defining them here, they can be reused for both of the requests and this +makes our code more efficient.

    +
    shared_params = ["timeObs", "longitude", "latitude", "temperature",
    +                 "dewpoint", "windDir", "windSpeed", "seaLevelPress",
    +                 "presWeather", "skyLayerBase"]
    +print(shared_params)
    +
    +
    +
    ['timeObs', 'longitude', 'latitude', 'temperature', 'dewpoint', 'windDir', 'windSpeed', 'seaLevelPress', 'presWeather', 'skyLayerBase']
    +
    +
    +
    +
    +

    Define METAR Request

    +

    To get METAR data we must use the obs datatype. To help limit the +amount of data returned, we will narrow the request by using a +geographic envelope, setting the request parameters, and using +timerange as a time filter.

    +
    # New metar request
    +metar_request = DataAccessLayer.newDataRequest("obs", envelope=envelope)
    +
    +# metar specifc parameters
    +metar_params = ["stationName", "skyCover"]
    +# combine all parameters
    +all_metar_params = shared_params + metar_params
    +# set the parameters on the metar request
    +metar_request.setParameters(*(all_metar_params))
    +
    +print(metar_request)
    +
    +
    +
    DefaultDataRequest(datatype=obs, identifiers={}, parameters=['timeObs', 'longitude', 'latitude', 'temperature', 'dewpoint', 'windDir', 'windSpeed', 'seaLevelPress', 'presWeather', 'skyLayerBase', 'stationName', 'skyCover'], levels=[], locationNames=[], envelope=<dynamicserialize.dstypes.com.vividsolutions.jts.geom.Envelope.Envelope object at 0x13abe40a0>)
    +
    +
    +
    +
    +

    Define Synoptic Request

    +

    Similar to the request above, we will limit the amount of data returned +by using a geographic envelope, setting the request parameters, +and using timerange as a time filter.

    +

    However, in order to access synoptic observations we will use the +sfcobs datatype.

    +
    # New sfcobs/SYNOP request
    +syn_request = DataAccessLayer.newDataRequest("sfcobs", envelope=envelope)
    +
    +# (sfcobs) uses stationId, while (obs) uses stationName
    +syn_params = ["stationId"]
    +# combine all parameters
    +all_syn_params = shared_params + syn_params
    +# set the parameters on the synoptic request
    +syn_request.setParameters(*(all_syn_params))
    +
    +print(syn_request)
    +
    +
    +
    DefaultDataRequest(datatype=sfcobs, identifiers={}, parameters=['timeObs', 'longitude', 'latitude', 'temperature', 'dewpoint', 'windDir', 'windSpeed', 'seaLevelPress', 'presWeather', 'skyLayerBase', 'stationId'], levels=[], locationNames=[], envelope=<dynamicserialize.dstypes.com.vividsolutions.jts.geom.Envelope.Envelope object at 0x105048bb0>)
    +
    +
    +

    Top

    +
    +
    +
    +
    +

    Get the Data!

    +

    We have already obtained our maps data, but we still have to collect our +observation data.

    +
    +

    Get the EDEX Responses

    +
    # METARs data
    +metar_response = DataAccessLayer.getGeometryData(metar_request,timerange)
    +# function getMetarObs was added in python-awips 18.1.4
    +metars = DataAccessLayer.getMetarObs(metar_response)
    +print("Found " + str(len(metar_response)) + " METAR records")
    +print("\tUsing " + str(len(metars['temperature'])) + " temperature records")
    +
    +# Synoptic data
    +syn_response = DataAccessLayer.getGeometryData(syn_request,timerange)
    +# function getSynopticObs was added in python-awips 18.1.4
    +synoptic = DataAccessLayer.getSynopticObs(syn_response)
    +print("Found " + str(len(syn_response)) + " Synoptic records")
    +print("\tUsing " + str(len(synoptic['temperature'])) + " temperature records")
    +
    +
    +
    Found 4116 METAR records
    +    Using 179 temperature records
    +Found 259 Synoptic records
    +    Using 63 temperature records
    +
    +
    +
    +
    +

    Extract Plotting Data

    +
    # Pull all necessary plotting information for the metar data
    +metars_data = extract_plotting_data(metars, 'obs')
    +print(str(len(metars_data['stid'])) + " METARs stations")
    +
    +# Pull all necessary plotting information for the synoptic data
    +synoptic_data = extract_plotting_data(synoptic, 'sfcobs')
    +print(str(len(synoptic_data['stid'])) + " Synoptic stations")
    +
    +
    +
    179 METARs stations
    +63 Synoptic stations
    +
    +
    +

    Top

    +
    +
    +
    +
    +

    Plot the Data

    +
    +

    Draw the Region

    +

    Here we will draw our region by using the states polygons we +retreived from EDEX earlier in this +example. To create this plot we use the +make_map() function which also adds lines of +latitude and longitude for additional context.

    +
    # Create the figure and axes used for the plot
     fig, ax = make_map(bbox=bbox)
    +# Create a feature based off our states polygons
     shape_feature = ShapelyFeature(states,ccrs.PlateCarree(),
                         facecolor='none', linestyle="-",edgecolor='#000000',linewidth=2)
     ax.add_feature(shape_feature)
     
    -
    <cartopy.mpl.feature_artist.FeatureArtist at 0x11dcfedd8>
    +
    <cartopy.mpl.feature_artist.FeatureArtist at 0x13b2ae5e0>
     
    -../../_images/Regional_Surface_Obs_Plot_4_1.png -
    -
    -

    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.

    -
    # Create envelope geometry
    -envelope = Polygon([(bbox[0],bbox[2]),(bbox[0],bbox[3]),
    -                    (bbox[1], bbox[3]),(bbox[1],bbox[2]),
    -                    (bbox[0],bbox[2])])
    -
    -# New obs request
    -DataAccessLayer.changeEDEXHost(edexServer)
    -request = DataAccessLayer.newDataRequest("obs", envelope=envelope)
    -availableProducts = DataAccessLayer.getAvailableParameters(request)
    -single_value_params = ["timeObs", "stationName", "longitude", "latitude",
    -                       "temperature", "dewpoint", "windDir",
    -                       "windSpeed", "seaLevelPress"]
    -multi_value_params = ["presWeather", "skyCover", "skyLayerBase"]
    -params = single_value_params + multi_value_params
    -request.setParameters(*(params))
    -
    -# Time range
    -lastHourDateTime = datetime.utcnow() - timedelta(minutes = 60)
    -start = lastHourDateTime.strftime('%Y-%m-%d %H:%M:%S')
    -end = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
    -
    -beginRange = datetime.strptime( start , "%Y-%m-%d %H:%M:%S")
    -endRange = datetime.strptime( end , "%Y-%m-%d %H:%M:%S")
    -timerange = TimeRange(beginRange, endRange)
    -# Get response
    -response = DataAccessLayer.getGeometryData(request,timerange)
    -# function getMetarObs was added in python-awips 18.1.4
    -obs = DataAccessLayer.getMetarObs(response)
    -print("Found " + str(len(response)) + " records")
    -print("Using " + str(len(obs['temperature'])) + " temperature records")
    -
    -
    -
    Found 3468 records
    -Using 152 temperature records
    -
    -
    -

    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:

    -
      -
    • 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

    • -
    -
    data = dict()
    -data['stid'] = np.array(obs['stationName'])
    -data['latitude']  = np.array(obs['latitude'])
    -data['longitude'] = np.array(obs['longitude'])
    -tmp = np.array(obs['temperature'], dtype=float)
    -dpt = np.array(obs['dewpoint'], dtype=float)
    -
    -# Suppress nan masking warnings
    -warnings.filterwarnings("ignore",category =RuntimeWarning)
    -
    -tmp[tmp == -9999.0] = 'nan'
    -dpt[dpt == -9999.] = 'nan'
    -data['air_temperature'] = tmp * units.degC
    -data['dew_point_temperature'] = dpt * units.degC
    -data['air_pressure_at_sea_level'] = np.array(obs['seaLevelPress'])* units('mbar')
    -direction = np.array(obs['windDir'])
    -direction[direction == -9999.0] = 'nan'
    -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']
    -proj = ccrs.LambertConformal(central_longitude=state['lon'], central_latitude=state['lat'],
    -                             standard_parallels=[35])
    -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')
    -ax.set_title(str(response[-1].getDataTime()) + " | METAR Surface Obs | " + edexServer)
    -stationplot = StationPlot(ax, data['longitude'], data['latitude'], clip_on=True,
    -                          transform=ccrs.PlateCarree(), fontsize=10)
    -custom_layout.plot(stationplot, data)
    +../../_images/Regional_Surface_Obs_Plot_42_1.png
    +
    +
    +

    Plot METAR Data

    +

    On the same axes (ax) and figure (fig) plot the METAR data.

    +
    # Create a title for the plot
    +title = str(metar_response[-1].getDataTime()) + " | METAR Surface Obs | " + edexServer
    +# Plot the station information for METARs data
    +plot_data(metars_data, title, ax, 'obs')
    +# Display the figure
     fig
     
    -../../_images/Regional_Surface_Obs_Plot_8_0.png +../../_images/Regional_Surface_Obs_Plot_44_0.png
    -
    -

    Plot Synoptic (sfcobs)

    -
    # New sfcobs/SYNOP request
    -DataAccessLayer.changeEDEXHost(edexServer)
    -request = DataAccessLayer.newDataRequest("sfcobs", envelope=envelope)
    -availableProducts = DataAccessLayer.getAvailableParameters(request)
    -# (sfcobs) uses stationId, while (obs) uses stationName,
    -# the rest of these parameters are the same.
    -single_value_params = ["timeObs", "stationId", "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
    -request.setParameters(*(params))
    -
    -# Time range
    -lastHourDateTime = datetime.utcnow() - timedelta(minutes = 60)
    -start = lastHourDateTime.strftime('%Y-%m-%d %H:%M:%S')
    -end = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
    -
    -beginRange = datetime.strptime( start , "%Y-%m-%d %H:%M:%S")
    -endRange = datetime.strptime( end , "%Y-%m-%d %H:%M:%S")
    -timerange = TimeRange(beginRange, endRange)
    -
    -# Get response
    -response = DataAccessLayer.getGeometryData(request,timerange)
    -# function getSynopticObs was added in python-awips 18.1.4
    -sfcobs = DataAccessLayer.getSynopticObs(response)
    -print("Found " + str(len(response)) + " records")
    -print("Using " + str(len(sfcobs['temperature'])) + " temperature records")
    -
    -
    -
    Found 260 records
    -Using 78 temperature records
    -
    -
    -
    data = dict()
    -data['stid'] = np.array(sfcobs['stationId'])
    -data['lat']  = np.array(sfcobs['latitude'])
    -data['lon'] = np.array(sfcobs['longitude'])
    -
    -# Synop/sfcobs temps are stored in kelvin (degC for METAR/obs)
    -tmp = np.array(sfcobs['temperature'], dtype=float)
    -dpt = np.array(sfcobs['dewpoint'], dtype=float)
    -direction = np.array(sfcobs['windDir'])
    -# Account for missing values
    -tmp[tmp == -9999.0] = 'nan'
    -dpt[dpt == -9999.] = 'nan'
    -direction[direction == -9999.0] = 'nan'
    -
    -data['air_temperature'] = tmp * units.kelvin
    -data['dew_point_temperature'] = dpt * units.kelvin
    -data['air_pressure_at_sea_level'] = np.array(sfcobs['seaLevelPress'])* units('mbar')
    -try:
    -    data['eastward_wind'], data['northward_wind'] = wind_components(
    -        np.array(sfcobs['windSpeed']) * units('knots'),direction * units.degree)
    -    data['present_weather'] = sfcobs['presWeather']
    -except ValueError:
    -    pass
    -
    -fig_synop, ax_synop = make_map(bbox=bbox)
    +

    Plot Synoptic (sfcobs)

    +

    On a new axes and figure (ax_syn, fig_syn) plot the map and +synoptic data.

    +
    # Create a new figure and axes for the synoptic data
    +fig_syn, ax_syn = make_map(bbox=bbox)
    +# Create the states feature from the polygons
     shape_feature = ShapelyFeature(states,ccrs.PlateCarree(),
                         facecolor='none', linestyle="-",edgecolor='#000000',linewidth=2)
    -ax_synop.add_feature(shape_feature)
    -
    -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')
    -ax_synop.set_title(str(response[-1].getDataTime()) + " | SYNOP Surface Obs | " + edexServer)
    -stationplot = StationPlot(ax_synop, data['lon'], data['lat'], clip_on=True,
    -                          transform=ccrs.PlateCarree(), fontsize=10)
    -custom_layout.plot(stationplot, data)
    +ax_syn.add_feature(shape_feature)
    +# Create a title for the figure
    +title = str(syn_response[-1].getDataTime()) + " | SYNOP Surface Obs | " + edexServer
    +# Draw the synoptic data
    +plot_data(synoptic_data, title, ax_syn, 'sfcobs')
     
    -../../_images/Regional_Surface_Obs_Plot_11_0.png +../../_images/Regional_Surface_Obs_Plot_46_0.png
    -
    -
    -

    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')
    -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')
    -ax.set_title(str(response[-1].getDataTime()) + " | METAR/SYNOP Surface Obs | " + edexServer)
    -stationplot = StationPlot(ax, data['lon'], data['lat'], clip_on=True,
    -                          transform=ccrs.PlateCarree(), fontsize=10)
    -custom_layout.plot(stationplot, data)
    +
    +

    Plot both METAR and Synoptic Data

    +

    Add the synoptic data to our first axes and figure (ax, fig) +that already contains our map and METARs data.

    +
    # Create a title for both the METAR and Synopotic data
    +title = str(syn_response[-1].getDataTime()) + " | METAR & Synoptic Surface Obs | " + edexServer
    +# Draw the synoptic on the first axes that already has the metar data
    +plot_data(synoptic_data, title, ax, 'sfcobs')
    +# Display the figure
     fig
     
    -../../_images/Regional_Surface_Obs_Plot_13_0.png +../../_images/Regional_Surface_Obs_Plot_48_0.png +

    Top

    +
    +
    +
    +
    +

    See Also

    + + +
    +

    Additional Documentation

    +

    python-awips:

    + +

    datetime:

    + +

    numpy:

    + +

    cartopy:

    + +

    matplotlib:

    + +

    metpy:

    + +

    Top

    +
    +
    +
    diff --git a/objects.inv b/objects.inv index 5893b8e..c7d45f9 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/searchindex.js b/searchindex.js index cb3d0bd..8876bbc 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"], "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": {"i": [0, 2, 6, 7, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 31, 33], "weather": [0, 6, 23, 28, 31, 33], "forecast": [0, 2, 6, 18, 21, 22, 25, 29, 32, 33], "displai": [0, 16, 23, 25, 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, "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, 25, 31, 33], "red": [0, 17, 18, 21], "hat": 0, "cento": 0, "linux": 0, "mac": [0, 20, 25], "o": [0, 20, 25], "x": [0, 17, 18, 19, 20, 21, 24, 25, 27, 28], "backend": 0, "server": [0, 16, 17, 18, 19, 20, 22, 23, 24, 25, 30, 31, 33], "onli": [0, 2, 4, 17, 22, 23, 24, 25, 31], "take": [0, 16, 18, 20, 22, 23, 30, 31], "unifi": [0, 16], "approach": 0, "ingest": [0, 16], "most": [0, 16, 18, 22, 23, 25, 30, 31], "type": [0, 3, 8, 10, 16, 17, 18, 20, 23, 24, 25, 30, 31], "follow": [0, 16, 20, 25, 30], "standard": [0, 24, 31], "path": [0, 20, 31], "through": [0, 16, 17, 18, 19, 20, 23, 25, 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, 33], "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, 25, 31], "domain": [0, 24, 25], "sinc": [0, 16, 20, 25, 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, 25, 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, 25, 31], "encourag": 0, "conduct": 0, "own": [0, 16], "foss": 0, "cot": [0, 25], "entitl": 0, "review": [0, 16], "ensur": 0, "thei": [0, 16, 24, 25, 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, 31, 33], "github": [0, 33], "com": [0, 16, 17, 18, 23, 28, 31, 33], "awips2": 0, "primari": 0, "storag": [0, 16], "environment": [0, 21], "exchang": 0, "visual": [0, 17, 20, 22, 23, 24, 25, 31], "manipul": [0, 16, 17, 18, 20, 23, 24, 25, 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, 25, 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, 25, 33], "togeth": 0, "compos": 0, "entir": [0, 24], "main": [0, 16, 25], "send": [0, 16, 17], "alert": [0, 16], "when": [0, 2, 17, 18, 19, 20, 24, 25], "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, 25, 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, 25, 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, 25, 31], "configur": 0, "call": [0, 16, 18, 20, 24, 31, 33], "perspect": 0, "d2d": 0, "two": [0, 16, 18, 23, 24, 25, 31, 33], "dimension": 0, "gfe": [0, 4, 5, 16, 22], "graphic": 0, "editor": 0, "ncp": 0, "sh": [0, 22, 25], "modern": 0, "version": 0, "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, 25], "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, 25, 26, 27, 28, 29, 31, 32], "surfac": [0, 16, 19, 22, 23, 29, 32], "observ": 0, "upper": [0, 22, 25, 32], "air": [0, 22, 25, 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, 25], "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, 25, 31], "receiv": [0, 25], "emploi": 0, "ha": [0, 16, 20, 23, 24, 25, 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, 25], "read": [0, 18, 22], "mai": [0, 16, 18, 20, 25, 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, 25], "v": [0, 16, 19, 23, 25, 28, 30], "5": [0, 21, 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, 25, 28, 29, 31], "isol": 0, "enhanc": [0, 26], "wa": [0, 16, 19, 25, 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, 26, 27, 28, 29, 30], "2": [0, 15, 19, 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, 14, 15, 16, 18, 19, 20, 21, 22, 25, 26, 27, 29, 30], "reftimeonli": [1, 2, 12], "fals": [1, 2, 18, 20, 24, 26, 28, 29, 31], "changeedexhost": [2, 6, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "newhostnam": 2, "chang": [2, 6, 16, 24, 25], "edex": [2, 6, 15, 16, 18, 19, 21, 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, 14, 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, 14, 15, 16, 20, 22, 25, 26, 29, 30], "locat": [2, 4, 7, 16, 18, 21, 24, 30, 31], "getavailableparamet": [2, 12, 14, 15, 21, 22, 26, 28, 29, 31], "paramet": [2, 4, 6, 8, 9, 12, 16, 18, 19, 25, 28, 30, 31, 32], "time": [2, 3, 6, 7, 12, 15, 16, 19, 20, 21, 24, 26, 27, 28, 29, 30], "idatarequest": [2, 14, 16, 20, 23, 31], "option": [2, 6, 16, 22, 25, 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, 25], "datatim": [2, 6, 16, 20, 22, 30], "getforecastrun": [2, 14, 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, 14, 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, 14, 15, 16, 18, 20, 22, 24, 26, 27, 29], "igriddata": [2, 16], "getidentifiervalu": [2, 12, 14, 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, 25], "identifi": [2, 4, 16, 18, 20, 24, 25, 29], "datatyp": [2, 4, 12, 18, 20, 21, 22, 24, 28, 29], "getmetarob": [2, 14, 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, 14, 20, 29], "getradarproductid": [2, 14, 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, 14, 26], "getrequiredidentifi": [2, 12, 14], "must": [2, 3, 16, 20, 25], "set": [2, 4, 16, 17, 18, 20, 24, 29, 30, 31], "succe": 2, "getsupporteddatatyp": [2, 12, 14, 22], "getsynopticob": [2, 14, 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, 25, 28], "leftov": 2, "setlazyloadgridlatlon": [2, 12, 14], "lazyloadgridlatlon": [2, 12], "hint": 2, "indic": [2, 16, 25], "whether": [2, 20, 31], "load": 2, "lat": [2, 6, 9, 15, 16, 17, 18, 19, 20, 22, 24, 25, 26, 27, 28, 29, 31], "lon": [2, 6, 9, 15, 16, 17, 18, 19, 20, 22, 24, 25, 26, 27, 28, 29, 31], "immedi": 2, "wait": 2, "until": 2, "need": [2, 16, 18, 20, 22, 23, 24, 25, 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, 25], "intern": 2, "might": [2, 22, 33], "ignor": [2, 16, 17, 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, 25, 28, 31, 33], "dure": [2, 18, 25, 31], "initi": [2, 30], "boolean": [2, 10, 23, 31], "lazi": 2, "constructtimerang": [3, 14], "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, 14], "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, 25], "same": [3, 16, 20, 24, 25, 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, 25, 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, 25, 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, 14, 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, 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, 25, 29, 31], "numpi": [9, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31], "second": [9, 22, 25, 29, 31], "getrawdata": [9, 15, 16, 18, 20, 22, 24, 26, 27, 29], "encode_dep_v": [10, 14], "depval": 10, "encode_radi": [10, 14], "azval": 10, "encode_thresh_v": [10, 14], "threshval": 10, "get_data_typ": [10, 14], "azdat": 10, "radial": 10, "raster": 10, "get_datetime_str": [10, 14], "record": [10, 16, 17, 19, 23, 24, 28, 30, 31], "get_hdf5_data": [10, 14, 15], "idra": [10, 15], "get_head": [10, 14], "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, 14], "lazygridlatlon": [12, 14], "crswkt": 12, "localhost": 12, "getnotificationfilt": 12, "determinedrtoffset": [13, 14], "timestr": 13, "maketim": [13, 14], "pydata": 14, "pygriddata": [14, 18, 24], "pygeometrydata": [14, 25], "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, 23, 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, 25, 28, 31, 33], "those": [16, 17, 20, 24, 25], "custom": [16, 23], "individu": [16, 20], "plug": 16, "ins": 16, "pertin": 16, "often": [16, 25], "dataplugin": [16, 18], "alwai": 16, "clean": [16, 19], "both": [16, 18, 21, 24, 26], "cave": [16, 17, 33], "": [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, 25], "know": [16, 18, 20, 23, 25], "come": [16, 17, 20, 23, 24, 25, 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, 25, 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, 25, 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, 25, 31], "preced": 16, "timeagnosticdataexcept": 16, "There": [16, 19], "rang": [16, 17, 20, 21, 23, 25, 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, 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, 25, 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, 25], "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, 25, 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, 25], "structur": 16, "suggest": 16, "one": [16, 18, 20, 22, 23, 24, 31], "below": [16, 17, 20, 22, 23, 24, 25, 31, 33], "definit": [16, 24, 31], "expand": 16, "dream": 16, "up": [16, 20, 24, 25, 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, 26, 28, 32], "ccfp": 16, "around": [16, 17, 18], "concept": 16, "interact": 16, "expect": 16, "them": [16, 17, 23, 28], "automat": [16, 25], "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, "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, 25], "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, 25, 26, 29, 31], "griddatafactori": 16, "while": [16, 25, 28, 30, 31], "calcul": [16, 18, 23, 27, 30], "befor": [16, 22, 31], "mapgeometryfactori": 16, "u": [16, 17, 18, 19, 20, 23, 24, 25, 28, 30, 31], "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, "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, 25, 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, 25, 28, 31], "box": [16, 17, 18, 27, 31], "search": 16, "icao": 16, "airport": [16, 25], "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, 25, 31], "enum": 16, "correl": [16, 26, 31], "made": [16, 17, 20, 23, 24, 25, 31], "getdata": 16, "replac": [16, 19], "getlatcoord": 16, "getloncoord": 16, "cell": [16, 18, 24, 25, 31], "r": [16, 19, 20, 21, 25, 30], "igriddatafactori": 16, "subset": [16, 17], "move": 16, "don": [16, 20, 25], "igeometrydatafactori": 16, "notebook": [17, 19, 21, 24, 26, 27, 28, 29, 30, 33], "tutori": [17, 18, 20, 22, 23, 24, 25, 31], "gempak": [17, 25], "connnect": 17, "throughout": [17, 20, 22, 23, 24, 25, 31], "subsequ": [17, 18, 20, 23, 24, 25], "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, 25, 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, 25], "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, 25, 31], "With": [17, 20, 23, 24, 25, 31], "just": [17, 22, 23, 25, 31, 33], "edexserv": [17, 21, 23, 28], "stationnam": [17, 23, 28], "our": [17, 18, 19, 20, 22, 23, 24, 25, 27, 28, 29, 31, 33], "so": [17, 18, 20, 22, 23, 25, 31], "last": [17, 22, 23, 31], "minut": [17, 28, 29], "kept": 17, "variabl": [17, 20, 23, 25, 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, 24, 25, 26, 27, 29, 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, 26, 28], "categori": [17, 24, 26, 28, 29, 31], "runtimewarn": [17, 26, 28], "tair": 17, "dtype": [17, 19, 23, 28], "9999": [17, 23, 27, 28, 30], "8": [17, 18, 23, 27, 28, 29], "32": [17, 19, 26, 27, 28, 29], "order": [17, 18, 19, 23, 24, 31, 33], "distinguish": 17, "ll": [17, 18, 22, 23, 24, 25, 31, 33], "tip": [17, 20, 24], "try": [17, 22, 23, 25, 28], "plai": [17, 18], "how": [17, 18, 22, 23, 25, 31, 33], "purpl": 17, "25": [17, 22, 27], "35": [17, 22, 23, 25, 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, 25, 31], "figur": [17, 18, 19, 20, 23, 25, 29, 30, 31], "fig": [17, 18, 20, 21, 23, 24, 25, 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, 25, 28, 31], "variant": [18, 25], "recent": [18, 23, 25, 30], "74": [18, 27], "easiest": [18, 31], "logic": [18, 24, 25, 31], "axi": [18, 25, 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, 25, 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], "colorbar": [18, 24, 26, 27, 29], "cbar": [18, 24, 26, 27, 29], "label": [18, 25, 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, 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, 25], "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, "40km": 19, "dewpoint": [19, 23, 28, 30], "wind": [19, 21, 22, 23, 25, 28, 30], "inlin": [19, 21, 26, 27, 28, 29, 30], "plot": [19, 20, 21, 22, 24, 26, 30], "skewt": [19, 25, 30], "hodograph": [19, 25, 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], "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, "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, 27, 28, 29], "0mb": [19, 22], "rcparam": [19, 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, 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, 25, 26, 29], "6": [19, 27, 28, 29], "18": [19, 21, 25, 26, 27, 28, 29], "1mb": 19, "22": [19, 21, 24, 25, 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, 25], "origin": 20, "3626751": 20, "1382263": 20, "1583666": 20, "4588674": 20, "dimens": 20, "pixel": 20, "size": [20, 25, 26, 29, 31], "inch": [20, 27, 28], "confus": 20, "pad": [20, 31], "exact": [20, 25], "buffer": [20, 24, 28], "width": 20, "dpi": 20, "get_dpi": 20, "gca": 20, "remov": [20, 25, 31], "subplotpar": 20, "left": [20, 30], "b": [20, 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, 25, 27, 28, 31], "cyan": 20, "xloc": 20, "arang": 20, "180": [20, 29], "footnotestr": 20, "annot": [20, 24], "xycoord": 20, "fraction": [20, 28], "textcoord": [20, 24], "va": 20, "savefig": 20, "bbox_inch": 20, "tight": 20, "pad_inch": 20, "exactli": [20, 25], "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, 25, 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, 25], "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, 25, 27, 28, 31], "mrm": 22, "grid_request": 22, "geograph": [22, 24, 33], "nw": [22, 23, 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, 25, 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, 25], "0_610": 22, "450": 22, "575": [22, 29], "60": [22, 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, "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, 28, 30], "stationplotlayout": [23, 28], "sky_cov": [23, 28], "coverag": 23, "integ": [23, 26, 28], "ovc": [23, 28], "bkn": [23, 28], "sct": [23, 28], "single_value_param": [23, 28], "winddir": [23, 28], "windspe": [23, 28], "multi_value_param": [23, 28], "too": 23, "clutter": [23, 25], "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, 25, 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, "timeob": [23, 28], "dynam": 23, "station_nam": 23, "time_titl": 23, "revers": 23, "avail_param": 23, "alreadi": [23, 25, 33], "skip": 23, "correct": [23, 28, 31], "put": [23, 28], "hand": [23, 28], "later": [23, 25, 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, 25, 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, "vertic": [25, 30, 31, 32], "exp": 25, "vapor_pressur": 25, "wind_spe": [25, 30], "wind_direct": 25, "forecastmodel": 25, "reporttyp": 25, "spechum": 25, "ucomp": 25, "vcomp": 25, "shown": [25, 31], "step": [25, 30, 31], "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], "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, "municip": 25, "fairmont": 25, "minnesota": 25, "exit": 25, "verifi": 25, "were": 25, "obj": 25, "fcsthour": 25, "period": 25, "94": [25, 26], "41999816894531": 25, "43": [25, 29], "65000152587891": 25, "2022": 25, "08": [25, 26, 29], "aug": 25, "construct": [25, 31], "moistur": 25, "spec": 25, "zero": 25, "That": 25, "length": 25, "humidti": 25, "equal": 25, "tmp": [25, 28], "prs2": 25, "tmp2": 25, "uc": 25, "vc": 25, "plugin": [25, 30], "ourselv": 25, "manual": [25, 31], "ncep": 25, "nsharp": 25, "tfull": 25, "pfull": 25, "mbar": [25, 28, 30], "94384": 25, "spd": [25, 30], "dir": 25, "deg": 25, "mix": 25, "vapor": 25, "rmix": 25, "kg": [25, 26], "td": [25, 30], "assum": 25, "td2": 25, "soundingrequest": 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, "zoom": 25, "highlight": 25, "slight": 25, "skew": [25, 30], "purpos": 25, "18z": 25, "fh": 25, "42": [25, 26, 27, 29], "z": 25, "2f": 25, "secondari": 25, "zoom_ax": 25, "bbox_to_anchor": [25, 31], "bbox_transform": 25, "transax": 25, "skew2": 25, "hum": 25, "legaci": 25, "calucl": 25, "legend": 25, "explain": 25, "redund": 25, "set_xlabel": 25, "set_ylabel": 25, "970": 25, "11": [25, 26, 27, 29], "region": [25, 32], "indicate_inset_zoom": 25, "dispos": 25, "unnecessari": 25, "close": 25, "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, "31": [26, 28, 29], "0_230_360_0": 26, "0_359": 26, "230": 26, "360": 26, "0_920_360_0": 26, "0555557e": 26, "09": [26, 29], "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, "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, "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, "04": [29, 31], "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, "li": 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, "chart": 30, "mandatori": 30, "signific": 30, "tri": 30, "mtri": 30, "lcl": 30, "dry_laps": 30, "parcel_profil": 30, "concaten": 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, "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, "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, "64": 31, "49": 31, "comma": 31, "space": 31, "bigger": 31, "font": 31, "earlier": 31, "horizonat": 31, "under": 31, "larger": 31, "ncol": 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, "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, 25, 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, 25, 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, 25, 31], "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, 25, 28, 31, 32], "object": [17, 18, 20, 22, 23, 24, 25, 31], "tabl": [17, 18, 20, 22, 23, 24, 25, 31], "content": [17, 18, 20, 22, 23, 24, 25, 31], "1": [17, 18, 20, 22, 23, 24, 25, 31], "import": [17, 18, 20, 22, 23, 24, 25, 31], "2": [17, 18, 20, 22, 23, 24, 25, 31], "initi": [17, 20, 23, 24, 31], "setup": [17, 20, 23, 31], "geograph": 17, "filter": [17, 20, 23, 24, 25, 31], "connect": [17, 20, 22, 23, 24, 25, 31], "3": [17, 18, 20, 22, 23, 24, 25, 31], "time": [17, 18, 22, 23, 25, 31], "4": [17, 18, 20, 22, 23, 24, 25, 31], "access": [17, 33], "convert": 17, "temp": 17, "5": [17, 18, 20, 22, 23, 24, 25, 31], "defin": [17, 18, 20], "threshold": 17, "6": [17, 18, 20, 22, 23, 24, 25, 31], "7": [17, 22, 23, 24, 25, 31], "see": [17, 18, 20, 22, 23, 24, 25, 31], "also": [17, 18, 20, 22, 23, 24, 25, 31], "addit": [17, 18, 20, 23, 24, 25, 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, 25, 31], "notebook": [18, 20, 22, 23, 25, 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], "definit": 20, "set_siz": 20, "write_img": 20, "get": [20, 22, 23, 25, 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, 25], "8": [22, 24, 25, 31], "9": [22, 24, 31], "10": [22, 24], "metar": [23, 28], "station": 23, "metpi": 23, "get_cloud_cov": 23, "name": [23, 25], "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, "prepar": 25, "calcul": 25, "dewpoint": 25, "specif": 25, "humid": 25, "method": 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, "u": 33}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "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": 57}, "alltitles": {"About Unidata AWIPS": [[0, "about-unidata-awips"]], "License": [[0, "license"]], "About AWIPS": [[0, "about-awips"]], "EDEX": [[0, "edex"]], "CAVE": [[0, "cave"]], "Alertviz": [[0, "alertviz"]], "LDM": [[0, "id1"]], "edexBridge": [[0, "edexbridge"]], "Qpid": [[0, "id2"]], "PostgreSQL": [[0, "postgresql"]], "HDF5": [[0, "hdf5"]], "PyPIES (httpd-pypies)": [[0, "pypies-httpd-pypies"]], "CombinedTimeQuery": [[1, "module-awips.dataaccess.CombinedTimeQuery"]], "DataAccessLayer": [[2, "module-awips.dataaccess.DataAccessLayer"]], "DateTimeConverter": [[3, "module-awips.DateTimeConverter"]], "IDataRequest (newDataRequest())": [[4, "idatarequest-newdatarequest"]], "IFPClient": [[5, "module-awips.gfe.IFPClient"]], "ModelSounding": [[6, "module-awips.dataaccess.ModelSounding"]], "PyData": [[7, "module-awips.dataaccess.PyData"]], "PyGeometryData": [[8, "module-awips.dataaccess.PyGeometryData"]], "PyGridData": [[9, "module-awips.dataaccess.PyGridData"]], "RadarCommon": [[10, "module-awips.RadarCommon"]], "ThriftClient": [[11, "module-awips.ThriftClient"]], "ThriftClientRouter": [[12, "module-awips.dataaccess.ThriftClientRouter"]], "TimeUtil": [[13, "module-awips.TimeUtil"]], "API Documentation": [[14, "api-documentation"]], "Available Data Types": [[15, "available-data-types"]], "satellite": [[15, "satellite"]], "binlightning": [[15, "binlightning"]], "grid": [[15, "grid"]], "warning": [[15, "warning"]], "radar": [[15, "radar"]], "Development Guide": [[16, "development-guide"]], "Writing a New Factory": [[16, "writing-a-new-factory"]], "Registering the Factory with the Framework": [[16, "registering-the-factory-with-the-framework"]], "Retrieving Data Using the Factory": [[16, "retrieving-data-using-the-factory"]], "Development Background": [[16, "development-background"]], "Design/Implementation": [[16, "design-implementation"]], "How users of the framework retrieve and use the data": [[16, "how-users-of-the-framework-retrieve-and-use-the-data"]], "How plugin developers contribute support for new datatypes": [[16, "how-plugin-developers-contribute-support-for-new-datatypes"]], "How the framework works when it receives a request": [[16, "how-the-framework-works-when-it-receives-a-request"]], "Request interfaces": [[16, "request-interfaces"]], "Data Interfaces": [[16, "data-interfaces"]], "Factory Interfaces (Java only)": [[16, "factory-interfaces-java-only"]], "Colored Surface Temperature Plot": [[17, "colored-surface-temperature-plot"]], "Objectives": [[17, "objectives"], [18, "objectives"], [20, "objectives"], [22, "objectives"], [23, "objectives"], [24, "objectives"], [25, "objectives"], [31, "objectives"]], "Table of Contents": [[17, "table-of-contents"], [18, "table-of-contents"], [20, "table-of-contents"], [22, "table-of-contents"], [23, "table-of-contents"], [24, "table-of-contents"], [25, "table-of-contents"], [31, "table-of-contents"]], "1 Imports": [[17, "imports"], [18, "imports"], [20, "imports"], [22, "imports"], [23, "imports"], [24, "imports"], [25, "imports"], [31, "imports"]], "2 Initial Setup": [[17, "initial-setup"], [20, "initial-setup"]], "2.1 Geographic Filter": [[17, "geographic-filter"]], "2.2 EDEX Connection": [[17, "edex-connection"]], "3 Filter by Time": [[17, "filter-by-time"]], "4 Access and Convert Temp Data": [[17, "access-and-convert-temp-data"]], "5 Define Temperature Thresholds": [[17, "define-temperature-thresholds"]], "6 Plot the Data!": [[17, "plot-the-data"], [23, "plot-the-data"]], "7 See Also": [[17, "see-also"], [23, "see-also"]], "7.1 Additional Documention": [[17, "additional-documention"]], "Colorized Grid Data": [[18, "colorized-grid-data"]], "2 Define Data Request": [[18, "define-data-request"]], "3 Limit Results Based on Time": [[18, "limit-results-based-on-time"]], "4 Function: make_map()": [[18, "function-make-map"]], "5 Use the Grid Data!": [[18, "use-the-grid-data"]], "5.1 Plot Using pcolormesh": [[18, "plot-using-pcolormesh"]], "5.2 Plot Using contourf": [[18, "plot-using-contourf"]], "6 See Also": [[18, "see-also"], [20, "see-also"]], "6.1 Related Notebooks": [[18, "related-notebooks"], [20, "related-notebooks"]], "6.2 Additional Documentation": [[18, "additional-documentation"], [20, "additional-documentation"]], "Forecast Model Vertical Sounding": [[19, "forecast-model-vertical-sounding"]], "Skew-T/Log-P": [[19, "skew-t-log-p"]], "Model Sounding Comparison": [[19, "model-sounding-comparison"]], "GOES CIRA Product Writer": [[20, "goes-cira-product-writer"]], "2.1 EDEX Connection": [[20, "edex-connection"]], "2.2 Parameter Definition": [[20, "parameter-definition"]], "3 Function: set_size()": [[20, "function-set-size"]], "4 Function: write_img()": [[20, "function-write-img"]], "5 Get the Data and Write it Out!": [[20, "get-the-data-and-write-it-out"]], "5.1 Filter the Data": [[20, "filter-the-data"]], "5.2 Define Output Location": [[20, "define-output-location"]], "5.3 Write Out GOES Images": [[20, "write-out-goes-images"]], "GOES Geostationary Lightning Mapper": [[21, "goes-geostationary-lightning-mapper"]], "GLM Sources and Parameters": [[21, "glm-sources-and-parameters"]], "Grid Levels and Parameters": [[22, "grid-levels-and-parameters"]], "2 Connect to EDEX": [[22, "connect-to-edex"], [24, "connect-to-edex"]], "3 Get a List of Supported Data Types": [[22, "get-a-list-of-supported-data-types"]], "4 Create a New Data Request and Set the Type": [[22, "create-a-new-data-request-and-set-the-type"]], "5 Get Available Locations": [[22, "get-available-locations"]], "6 Get Available Parameters": [[22, "get-available-parameters"]], "7 Get Available Levels": [[22, "get-available-levels"]], "8 Get Available Times": [[22, "get-available-times"]], "9 Get the Data!": [[22, "get-the-data"]], "10 See Also": [[22, "see-also"]], "10.1 Related Notebooks": [[22, "related-notebooks"]], "METAR Station Plot with MetPy": [[23, "metar-station-plot-with-metpy"]], "2 Function: get_cloud_cover()": [[23, "function-get-cloud-cover"]], "3 Initial Setup": [[23, "initial-setup"]], "3.1 Initial EDEX Connection": [[23, "initial-edex-connection"]], "3.2 Setting Connection Location Names": [[23, "setting-connection-location-names"]], "4 Filter by Time": [[23, "filter-by-time"]], "5 Use the Data!": [[23, "use-the-data"]], "5.1 Get the Data!": [[23, "get-the-data"]], "5.2 Extract all Parameters": [[23, "extract-all-parameters"]], "5.3 Populate the Data Dictionary": [[23, "populate-the-data-dictionary"]], "7.1 Related Notebooks": [[23, "related-notebooks"]], "7.2 Additional Documentation": [[23, "additional-documentation"]], "Map Resources and Topography": [[24, "map-resources-and-topography"]], "3 Function: make_map()": [[24, "function-make-map"]], "4 Create Initial Map From CWA": [[24, "create-initial-map-from-cwa"]], "5 Draw Merged CWA": [[24, "draw-merged-cwa"]], "6 Draw Interstates using Boundary Filter": [[24, "draw-interstates-using-boundary-filter"]], "7 Draw Nearby Cities": [[24, "draw-nearby-cities"]], "8 Draw Nearby Lakes": [[24, "draw-nearby-lakes"]], "9 Draw Major Rivers": [[24, "draw-major-rivers"]], "10 Draw Topography": [[24, "draw-topography"]], "11 See Also": [[24, "see-also"]], "11.1 Additional Documentation": [[24, "additional-documentation"]], "Model Sounding Data": [[25, "model-sounding-data"]], "2 EDEX Connection": [[25, "edex-connection"]], "3 Setting Location": [[25, "setting-location"]], "3.1 Available Location Names": [[25, "available-location-names"]], "3.2 Setting the Location Name": [[25, "setting-the-location-name"]], "4 Filtering by Time": [[25, "filtering-by-time"]], "5 Get the Data!": [[25, "get-the-data"]], "6 Use the Data!": [[25, "use-the-data"]], "6.1 Prepare Data Objects": [[25, "prepare-data-objects"]], "6.2 Calculate Dewpoint from Specific Humidity": [[25, "calculate-dewpoint-from-specific-humidity"]], "6.2.1 Method 1": [[25, "method-1"]], "6.2.2 Method 2": [[25, "method-2"]], "6.2.3 Method 3": [[25, "method-3"]], "7 Plot the Data!": [[25, "plot-the-data"]], "8 See Also": [[25, "see-also"]], "8.1 Related Notebooks": [[25, "related-notebooks"]], "8.2 Additional Documentation": [[25, "additional-documentation"]], "NEXRAD Level3 Radar": [[26, "nexrad-level3-radar"]], "Precip Accumulation-Region Of Interest": [[27, "precip-accumulation-region-of-interest"]], "Regional Surface Obs Plot": [[28, "regional-surface-obs-plot"]], "Plot METAR (obs)": [[28, "plot-metar-obs"]], "Plot Synoptic (sfcobs)": [[28, "plot-synoptic-sfcobs"]], "Plot both METAR and SYNOP": [[28, "plot-both-metar-and-synop"]], "Satellite Imagery": [[29, "satellite-imagery"]], "Available Sources, Creating Entities, Sectors, and Products": [[29, "available-sources-creating-entities-sectors-and-products"]], "GOES 16 Mesoscale Sectors": [[29, "goes-16-mesoscale-sectors"]], "Upper Air BUFR Soundings": [[30, "upper-air-bufr-soundings"]], "Watch Warning and Advisory Plotting": [[31, "watch-warning-and-advisory-plotting"]], "2 Function: make_map()": [[31, "function-make-map"]], "3 Function: get_color()": [[31, "function-get-color"]], "4 Function get_title()": [[31, "function-get-title"]], "5 Initial Setup": [[31, "initial-setup"]], "5.1 EDEX Connection": [[31, "edex-connection"]], "5.2 Significance (Sig) Constants": [[31, "significance-sig-constants"]], "6 Filter by Time": [[31, "filter-by-time"]], "7 Use the Data!": [[31, "use-the-data"]], "7.1 Get the Data": [[31, "get-the-data"]], "7.2 Extract Phensigs, Geometries, and Times": [[31, "extract-phensigs-geometries-and-times"]], "8 Plot the Data!": [[31, "plot-the-data"]], "8.1 Create State and Political Boundaries": [[31, "create-state-and-political-boundaries"]], "8.2 Draw the Plot and Legend for WWAs": [[31, "draw-the-plot-and-legend-for-wwas"]], "9 See Also": [[31, "see-also"]], "9.1 Related Notebooks": [[31, "related-notebooks"]], "9.2 Additional Documentation": [[31, "additional-documentation"]], "Data Plotting Examples": [[32, "data-plotting-examples"]], "Python AWIPS Data Access Framework": [[33, "python-awips-data-access-framework"]], "Pre-requisite Software": [[33, "pre-requisite-software"]], "Package-Only Install": [[33, "package-only-install"]], "Pip Install": [[33, "pip-install"]], "Conda Install": [[33, "conda-install"]], "Source Code with Examples Install": [[33, "source-code-with-examples-install"]], "Questions \u2013 Contact Us!": [[33, "questions-contact-us"]]}, "indexentries": {"awips.dataaccess.combinedtimequery": [[1, "module-awips.dataaccess.CombinedTimeQuery"]], "getavailabletimes() (in module awips.dataaccess.combinedtimequery)": [[1, "awips.dataaccess.CombinedTimeQuery.getAvailableTimes"]], "module": [[1, "module-awips.dataaccess.CombinedTimeQuery"], [2, "module-awips.dataaccess.DataAccessLayer"], [3, "module-awips.DateTimeConverter"], [5, "module-awips.gfe.IFPClient"], [6, "module-awips.dataaccess.ModelSounding"], [7, "module-awips.dataaccess.PyData"], [8, "module-awips.dataaccess.PyGeometryData"], [9, "module-awips.dataaccess.PyGridData"], [10, "module-awips.RadarCommon"], [11, "module-awips.ThriftClient"], [12, "module-awips.dataaccess.ThriftClientRouter"], [13, "module-awips.TimeUtil"]], "awips.dataaccess.dataaccesslayer": [[2, "module-awips.dataaccess.DataAccessLayer"]], "changeedexhost() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.changeEDEXHost"]], "getavailablelevels() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getAvailableLevels"]], "getavailablelocationnames() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getAvailableLocationNames"]], "getavailableparameters() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getAvailableParameters"]], "getavailabletimes() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getAvailableTimes"]], "getforecastrun() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getForecastRun"]], "getgeometrydata() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getGeometryData"]], "getgriddata() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getGridData"]], "getidentifiervalues() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getIdentifierValues"]], "getmetarobs() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getMetarObs"]], "getoptionalidentifiers() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getOptionalIdentifiers"]], "getradarproductids() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getRadarProductIDs"]], "getradarproductnames() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getRadarProductNames"]], "getrequiredidentifiers() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getRequiredIdentifiers"]], "getsupporteddatatypes() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getSupportedDatatypes"]], "getsynopticobs() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getSynopticObs"]], "newdatarequest() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.newDataRequest"]], "setlazyloadgridlatlon() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.setLazyLoadGridLatLon"]], "awips.datetimeconverter": [[3, "module-awips.DateTimeConverter"]], "constructtimerange() (in module awips.datetimeconverter)": [[3, "awips.DateTimeConverter.constructTimeRange"]], "converttodatetime() (in module awips.datetimeconverter)": [[3, "awips.DateTimeConverter.convertToDateTime"]], "idatarequest (class in awips.dataaccess)": [[4, "awips.dataaccess.IDataRequest"]], "__weakref__ (awips.dataaccess.idatarequest attribute)": [[4, "awips.dataaccess.IDataRequest.__weakref__"]], "addidentifier() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.addIdentifier"]], "getdatatype() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.getDatatype"]], "getenvelope() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.getEnvelope"]], "getidentifiers() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.getIdentifiers"]], "getlevels() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.getLevels"]], "getlocationnames() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.getLocationNames"]], "setdatatype() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.setDatatype"]], "setenvelope() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.setEnvelope"]], "setlevels() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.setLevels"]], "setlocationnames() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.setLocationNames"]], "setparameters() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.setParameters"]], "ifpclient (class in awips.gfe.ifpclient)": [[5, "awips.gfe.IFPClient.IFPClient"]], "awips.gfe.ifpclient": [[5, "module-awips.gfe.IFPClient"]], "commitgrid() (awips.gfe.ifpclient.ifpclient method)": [[5, "awips.gfe.IFPClient.IFPClient.commitGrid"]], "getgridinventory() (awips.gfe.ifpclient.ifpclient method)": [[5, "awips.gfe.IFPClient.IFPClient.getGridInventory"]], "getparmlist() (awips.gfe.ifpclient.ifpclient method)": [[5, "awips.gfe.IFPClient.IFPClient.getParmList"]], "getselecttr() (awips.gfe.ifpclient.ifpclient method)": [[5, "awips.gfe.IFPClient.IFPClient.getSelectTR"]], "getsiteid() (awips.gfe.ifpclient.ifpclient method)": [[5, "awips.gfe.IFPClient.IFPClient.getSiteID"]], "awips.dataaccess.modelsounding": [[6, "module-awips.dataaccess.ModelSounding"]], "changeedexhost() (in module awips.dataaccess.modelsounding)": [[6, "awips.dataaccess.ModelSounding.changeEDEXHost"]], "getsounding() (in module awips.dataaccess.modelsounding)": [[6, "awips.dataaccess.ModelSounding.getSounding"]], "pydata (class in awips.dataaccess.pydata)": [[7, "awips.dataaccess.PyData.PyData"]], "awips.dataaccess.pydata": [[7, "module-awips.dataaccess.PyData"]], "getattribute() (awips.dataaccess.pydata.pydata method)": [[7, "awips.dataaccess.PyData.PyData.getAttribute"]], "getattributes() (awips.dataaccess.pydata.pydata method)": [[7, "awips.dataaccess.PyData.PyData.getAttributes"]], "getdatatime() (awips.dataaccess.pydata.pydata method)": [[7, "awips.dataaccess.PyData.PyData.getDataTime"]], "getlevel() (awips.dataaccess.pydata.pydata method)": [[7, "awips.dataaccess.PyData.PyData.getLevel"]], "getlocationname() (awips.dataaccess.pydata.pydata method)": [[7, "awips.dataaccess.PyData.PyData.getLocationName"]], "pygeometrydata (class in awips.dataaccess.pygeometrydata)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData"]], "awips.dataaccess.pygeometrydata": [[8, "module-awips.dataaccess.PyGeometryData"]], "getgeometry() (awips.dataaccess.pygeometrydata.pygeometrydata method)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData.getGeometry"]], "getnumber() (awips.dataaccess.pygeometrydata.pygeometrydata method)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData.getNumber"]], "getparameters() (awips.dataaccess.pygeometrydata.pygeometrydata method)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData.getParameters"]], "getstring() (awips.dataaccess.pygeometrydata.pygeometrydata method)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData.getString"]], "gettype() (awips.dataaccess.pygeometrydata.pygeometrydata method)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData.getType"]], "getunit() (awips.dataaccess.pygeometrydata.pygeometrydata method)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData.getUnit"]], "pygriddata (class in awips.dataaccess.pygriddata)": [[9, "awips.dataaccess.PyGridData.PyGridData"]], "awips.dataaccess.pygriddata": [[9, "module-awips.dataaccess.PyGridData"]], "getlatloncoords() (awips.dataaccess.pygriddata.pygriddata method)": [[9, "awips.dataaccess.PyGridData.PyGridData.getLatLonCoords"]], "getparameter() (awips.dataaccess.pygriddata.pygriddata method)": [[9, "awips.dataaccess.PyGridData.PyGridData.getParameter"]], "getrawdata() (awips.dataaccess.pygriddata.pygriddata method)": [[9, "awips.dataaccess.PyGridData.PyGridData.getRawData"]], "getunit() (awips.dataaccess.pygriddata.pygriddata method)": [[9, "awips.dataaccess.PyGridData.PyGridData.getUnit"]], "awips.radarcommon": [[10, "module-awips.RadarCommon"]], "encode_dep_vals() (in module awips.radarcommon)": [[10, "awips.RadarCommon.encode_dep_vals"]], "encode_radial() (in module awips.radarcommon)": [[10, "awips.RadarCommon.encode_radial"]], "encode_thresh_vals() (in module awips.radarcommon)": [[10, "awips.RadarCommon.encode_thresh_vals"]], "get_data_type() (in module awips.radarcommon)": [[10, "awips.RadarCommon.get_data_type"]], "get_datetime_str() (in module awips.radarcommon)": [[10, "awips.RadarCommon.get_datetime_str"]], "get_hdf5_data() (in module awips.radarcommon)": [[10, "awips.RadarCommon.get_hdf5_data"]], "get_header() (in module awips.radarcommon)": [[10, "awips.RadarCommon.get_header"]], "thriftclient (class in awips.thriftclient)": [[11, "awips.ThriftClient.ThriftClient"]], "thriftrequestexception": [[11, "awips.ThriftClient.ThriftRequestException"]], "awips.thriftclient": [[11, "module-awips.ThriftClient"]], "sendrequest() (awips.thriftclient.thriftclient method)": [[11, "awips.ThriftClient.ThriftClient.sendRequest"]], "lazygridlatlon (class in awips.dataaccess.thriftclientrouter)": [[12, "awips.dataaccess.ThriftClientRouter.LazyGridLatLon"]], "thriftclientrouter (class in awips.dataaccess.thriftclientrouter)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter"]], "awips.dataaccess.thriftclientrouter": [[12, "module-awips.dataaccess.ThriftClientRouter"]], "getavailablelevels() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getAvailableLevels"]], "getavailablelocationnames() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getAvailableLocationNames"]], "getavailableparameters() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getAvailableParameters"]], "getavailabletimes() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getAvailableTimes"]], "getgeometrydata() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getGeometryData"]], "getgriddata() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getGridData"]], "getidentifiervalues() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getIdentifierValues"]], "getnotificationfilter() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getNotificationFilter"]], "getoptionalidentifiers() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getOptionalIdentifiers"]], "getrequiredidentifiers() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getRequiredIdentifiers"]], "getsupporteddatatypes() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getSupportedDatatypes"]], "newdatarequest() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.newDataRequest"]], "setlazyloadgridlatlon() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.setLazyLoadGridLatLon"]], "awips.timeutil": [[13, "module-awips.TimeUtil"]], "determinedrtoffset() (in module awips.timeutil)": [[13, "awips.TimeUtil.determineDrtOffset"]], "maketime() (in module awips.timeutil)": [[13, "awips.TimeUtil.makeTime"]]}}) \ 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": {"i": [0, 2, 6, 7, 9, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 31, 33], "weather": [0, 6, 23, 28, 31, 33], "forecast": [0, 2, 6, 18, 21, 22, 25, 29, 32, 33], "displai": [0, 16, 23, 25, 28, 31, 33], "analysi": [0, 33], "packag": [0, 16, 18, 22, 24, 28, 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, "applic": [0, 24], "consist": [0, 16, 24], "data": [0, 2, 4, 6, 7, 8, 9, 10, 21, 24, 26, 27, 29, 30], "render": [0, 24, 29], "client": [0, 2, 12], "which": [0, 6, 16, 17, 18, 20, 22, 24, 25, 28, 31], "run": [0, 2, 16, 18, 19, 20, 22, 23, 25, 31, 33], "red": [0, 17, 18, 21], "hat": 0, "cento": 0, "linux": 0, "mac": [0, 20, 25], "o": [0, 20, 25], "x": [0, 17, 18, 19, 20, 21, 24, 25, 27, 28], "backend": 0, "server": [0, 16, 17, 18, 19, 20, 22, 23, 24, 25, 28, 30, 31, 33], "onli": [0, 2, 4, 17, 22, 23, 24, 25, 31], "take": [0, 16, 18, 20, 22, 23, 28, 30, 31], "unifi": [0, 16], "approach": 0, "ingest": [0, 16], "most": [0, 16, 18, 22, 23, 25, 28, 30, 31], "type": [0, 3, 8, 10, 16, 17, 18, 20, 23, 24, 25, 30, 31], "follow": [0, 16, 20, 25, 28, 30], "standard": [0, 24, 31], "path": [0, 20, 31], "through": [0, 16, 17, 18, 19, 20, 23, 25, 28, 30, 31], "system": [0, 22], "At": 0, "high": [0, 21], "level": [0, 2, 4, 6, 7, 12, 16, 18, 19, 23, 24, 25, 26, 28, 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, 28, 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, 29, 30, 31, 33], "store": [0, 16, 17, 23, 31], "an": [0, 2, 4, 7, 16, 17, 18, 20, 21, 22, 23, 24, 25, 28, 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, 28, 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, 33], "inter": 0, "commun": [0, 2, 6], "imag": [0, 15, 18, 24, 28, 29, 31], "softwar": [0, 16], "releas": [0, 33], "program": [0, 33], "center": [0, 18, 23, 28, 31, 33], "consid": [0, 16], "public": [0, 16, 17, 20, 23, 24, 25, 28, 31], "domain": [0, 24, 25], "sinc": [0, 16, 20, 25, 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, 25, 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, 28], "entiti": [0, 15, 20], "who": [0, 16], "re": [0, 16, 17, 20, 22, 23, 25, 28, 31], "encourag": 0, "conduct": 0, "own": [0, 16], "foss": 0, "cot": [0, 25], "entitl": 0, "review": [0, 16], "ensur": 0, "thei": [0, 16, 24, 25, 28, 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, 31, 33], "github": [0, 33], "com": [0, 16, 17, 18, 23, 28, 31, 33], "awips2": 0, "primari": 0, "storag": [0, 16], "environment": [0, 21], "exchang": 0, "visual": [0, 17, 20, 22, 23, 24, 25, 28, 31], "manipul": [0, 16, 17, 18, 20, 23, 24, 25, 28, 31], "common": [0, 16, 17, 18, 23, 24, 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, 25, 28, 31, 33], "addit": [0, 16], "specif": [0, 4, 16, 18, 20, 23, 24, 26, 31], "sever": [0, 21, 22, 23, 24, 28, 31], "commerci": 0, "off": [0, 18, 20, 28, 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, 25, 33], "togeth": 0, "compos": 0, "entir": [0, 24], "main": [0, 16, 25], "send": [0, 16, 17], "alert": [0, 16], "when": [0, 2, 17, 18, 19, 20, 24, 25], "readi": [0, 22, 23, 31], "These": [0, 2, 31], "file": [0, 10, 16, 20], "header": 0, "inform": [0, 2, 20, 21, 22, 23, 24, 28, 31], "allow": [0, 2, 16, 17, 19, 20, 23, 24, 25, 28, 31], "determin": [0, 16, 19, 27], "appropri": [0, 28, 31], "default": [0, 6, 16, 20, 23, 28, 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, 25, 28, 30, 31, 33], "than": [0, 18, 19, 28, 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, 28], "number": [0, 8, 16, 18, 24, 31], "differ": [0, 16, 17, 18, 22, 24, 25, 28, 31], "configur": 0, "call": [0, 16, 18, 20, 24, 28, 31, 33], "perspect": 0, "d2d": 0, "two": [0, 16, 18, 23, 24, 25, 28, 31, 33], "dimension": 0, "gfe": [0, 4, 5, 16, 22], "graphic": 0, "editor": 0, "ncp": 0, "sh": [0, 22, 25], "modern": 0, "version": 0, "design": [0, 20], "present": 0, "variou": [0, 23, 24, 28], "notif": 0, "error": [0, 16, 22, 28], "alarm": 0, "can": [0, 3, 16, 17, 18, 20, 22, 23, 24, 25, 28, 29, 31, 33], "execut": 0, "either": [0, 16, 22, 28, 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, 25], "access": [0, 2, 6, 16, 18, 22, 24, 28, 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, 25, 26, 27, 29, 31, 32], "surfac": [0, 16, 19, 22, 23, 29, 32], "observ": [0, 28], "upper": [0, 22, 25, 32], "air": [0, 22, 25, 28, 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, 28, 33], "directli": [0, 17, 20, 23, 24, 25, 28], "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, 25, 28, 31], "receiv": [0, 25], "emploi": 0, "ha": [0, 16, 20, 23, 24, 25, 28, 31], "finish": 0, "further": 0, "qpidd": 0, "known": [0, 20, 33], "relat": [0, 17], "dbm": 0, "retriev": [0, 4, 6, 28, 30], "tabl": 0, "some": [0, 16, 22, 25, 28], "read": [0, 18, 22], "mai": [0, 16, 18, 20, 25, 28, 33], "queri": [0, 16, 19, 20, 24], "termain": 0, "base": [0, 6, 16, 17, 20, 24, 25, 26, 28, 29, 31], "front": 0, "psql": 0, "edex_postgr": 0, "hdfgroup": 0, "hierarch": 0, "format": [0, 21, 22, 25], "v": [0, 16, 19, 23, 25, 28, 30], "5": [0, 21, 26, 27, 28, 29], "similar": [0, 16, 17, 28, 31], "netcdf": [0, 20], "multipl": [0, 16, 20, 22, 24, 28], "singl": [0, 2, 16, 19, 20, 22, 24], "For": [0, 16, 17, 20, 22, 24, 30], "exampl": [0, 2, 15, 16, 18, 20, 22, 24, 25, 26, 28, 29, 30, 31], "volum": 0, "scan": [0, 15, 26], "reflect": [0, 26], "veloc": [0, 26], "well": [0, 16, 18, 23, 28, 31, 33], "deriv": [0, 16, 26, 29], "composit": [0, 20, 26, 29], "python": [0, 2, 3, 16, 17, 18, 20, 22, 23, 24, 25, 28, 29, 31], "isol": 0, "enhanc": [0, 26], "wa": [0, 16, 19, 25, 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], "being": [0, 4, 16, 28, 31], "written": [0, 16, 19, 20], "sent": [0, 17], "implement": [0, 2], "part": [0, 16], "1": [0, 15, 19, 21, 26, 27, 28, 29, 30], "2": [0, 15, 19, 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, 14, 15, 16, 18, 19, 20, 21, 22, 25, 26, 27, 29, 30], "reftimeonli": [1, 2, 12], "fals": [1, 2, 18, 20, 24, 26, 28, 29, 31], "changeedexhost": [2, 6, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "newhostnam": 2, "chang": [2, 6, 16, 24, 25], "edex": [2, 6, 15, 16, 18, 19, 21, 26, 27, 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, 14, 15, 19, 22, 26], "get": [2, 4, 7, 8, 9, 10, 16, 17, 18, 19, 24, 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, 28, 29], "string": [2, 4, 7, 8, 9, 10, 16, 19, 23, 31], "getavailablelocationnam": [2, 12, 14, 15, 16, 20, 22, 25, 26, 29, 30], "locat": [2, 4, 7, 16, 18, 21, 24, 30, 31], "getavailableparamet": [2, 12, 14, 15, 21, 22, 26, 29, 31], "paramet": [2, 4, 6, 8, 9, 12, 16, 18, 19, 25, 30, 31, 32], "time": [2, 3, 6, 7, 12, 15, 16, 19, 20, 21, 24, 26, 27, 29, 30], "idatarequest": [2, 14, 16, 20, 23, 28, 31], "option": [2, 6, 16, 22, 25, 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, 28], "forecasthr": [2, 25], "datatim": [2, 6, 16, 20, 22, 30], "getforecastrun": [2, 14, 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, 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, 14, 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, 28], "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, 14, 15, 16, 18, 20, 22, 24, 26, 27, 29], "igriddata": [2, 16], "getidentifiervalu": [2, 12, 14, 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, 25], "identifi": [2, 4, 16, 18, 20, 24, 25, 28, 29], "datatyp": [2, 4, 12, 18, 20, 21, 22, 24, 28, 29], "getmetarob": [2, 14, 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, 14, 20, 29], "getradarproductid": [2, 14, 26], "availableparm": [2, 21, 26], "numer": 2, "idetifi": 2, "nexrad3": 2, "full": [2, 15, 16, 22, 24, 29, 30, 31], "filter": [2, 22], "getradarproductnam": [2, 14, 26], "getrequiredidentifi": [2, 12, 14], "must": [2, 3, 16, 20, 25, 28], "set": [2, 4, 16, 17, 18, 20, 24, 28, 29, 30, 31], "succe": 2, "getsupporteddatatyp": [2, 12, 14, 22], "getsynopticob": [2, 14, 28], "sfcob": [2, 16, 22], "synop": [2, 16, 28], "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, 28], "envelop": [2, 4, 12, 16, 17, 18, 19, 24, 27, 28], "limit": [2, 16, 17, 20, 25, 28], "leftov": 2, "setlazyloadgridlatlon": [2, 12, 14], "lazyloadgridlatlon": [2, 12], "hint": 2, "indic": [2, 16, 25], "whether": [2, 20, 31], "load": 2, "lat": [2, 6, 9, 15, 16, 17, 18, 19, 20, 22, 24, 25, 26, 27, 28, 29, 31], "lon": [2, 6, 9, 15, 16, 17, 18, 19, 20, 22, 24, 25, 26, 27, 28, 29, 31], "immedi": 2, "wait": 2, "until": 2, "need": [2, 16, 18, 20, 22, 23, 24, 25, 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, 25], "intern": 2, "might": [2, 22, 33], "ignor": [2, 16, 17, 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, 25, 28, 31, 33], "dure": [2, 18, 25, 31], "initi": [2, 30], "boolean": [2, 10, 23, 31], "lazi": 2, "constructtimerang": [3, 14], "build": [3, 16, 30], "dynamicseri": [3, 17, 18, 23, 28, 31], "given": [3, 6, 22], "argument": [3, 28], "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, 14], "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, 25], "same": [3, 16, 20, 24, 25, 28, 29], "pass": [3, 16, 20], "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, 25, 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, 25, 28, 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, 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, 14, 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, 28, 29, 31], "_soundingcub": 6, "act": 6, "3": [6, 19, 26, 27, 28, 29, 30], "tier": 6, "final": [6, 17, 18, 20, 23, 28, 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, 25, 28, 29, 31], "numpi": [9, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31], "second": [9, 22, 25, 29, 31], "getrawdata": [9, 15, 16, 18, 20, 22, 24, 26, 27, 29], "encode_dep_v": [10, 14], "depval": 10, "encode_radi": [10, 14], "azval": 10, "encode_thresh_v": [10, 14], "threshval": 10, "get_data_typ": [10, 14], "azdat": 10, "radial": 10, "raster": 10, "get_datetime_str": [10, 14], "record": [10, 16, 17, 19, 23, 24, 28, 30, 31], "get_hdf5_data": [10, 14, 15], "idra": [10, 15], "get_head": [10, 14], "headerformat": 10, "xlen": 10, "ylen": 10, "descript": [10, 31], "9581": 11, "uri": 11, "sendrequest": 11, "thrift": 11, "except": [11, 16, 22, 23, 25], "thriftrequestexcept": [11, 14], "lazygridlatlon": [12, 14], "crswkt": 12, "localhost": 12, "getnotificationfilt": 12, "determinedrtoffset": [13, 14], "timestr": 13, "maketim": [13, 14], "pydata": 14, "pygriddata": [14, 18, 24], "pygeometrydata": [14, 25], "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, 23, 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, 29], "point": [15, 16, 19, 20, 21, 22, 24, 25, 27, 28], "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, 28], "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, 25, 28, 31, 33], "those": [16, 17, 20, 24, 25], "custom": [16, 23], "individu": [16, 20], "plug": 16, "ins": 16, "pertin": 16, "often": [16, 25], "dataplugin": [16, 18], "alwai": 16, "clean": [16, 19], "both": [16, 18, 21, 24, 26], "cave": [16, 17, 33], "": [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, 25], "know": [16, 18, 20, 23, 25], "come": [16, 17, 20, 23, 24, 25, 28, 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, 25, 28, 31], "power": [16, 29], "mean": 16, "doe": [16, 25], "anyth": 16, "underli": 16, "To": [16, 17, 20, 28], "satellitegridfactori": 16, "radargridfactori": 16, "correspond": [16, 31], "what": [16, 19, 20, 22, 23, 25, 31], "binoffset": 16, "abov": [16, 18, 19, 22, 24, 28, 31], "bin": 16, "offset": [16, 20, 24], "note": [16, 17, 18, 19, 20, 22, 23, 24, 25, 28, 31], "preced": 16, "timeagnosticdataexcept": 16, "There": [16, 19], "rang": [16, 17, 20, 21, 23, 25, 26, 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, 28, 31], "divers": 16, "layer": [16, 22, 26], "current": [16, 31], "veri": [16, 28, 31], "want": [16, 17, 20, 22, 23, 31], "bundl": 16, "manifest": 16, "mf": 16, "import": [16, 19, 21, 26, 27, 29, 30], "req": 16, "2fhag": [16, 22], "info": [16, 28], "gfs40": 16, "idata": 16, "defaultdatarequest": [16, 18, 28], "futur": 16, "implent": 16, "found": [16, 17, 19, 22, 26, 28], "section": [16, 23, 24, 25, 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, 30], "best": [16, 25], "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, 29, 31, 32], "you": [16, 18, 20, 22, 25, 28, 30, 31, 33], "look": [16, 18, 20, 22, 24, 31], "binlightn": [16, 21, 22], "sfc": [16, 28, 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, 25], "structur": 16, "suggest": 16, "one": [16, 18, 20, 22, 23, 24, 28, 31], "below": [16, 17, 20, 22, 23, 24, 25, 28, 31, 33], "definit": [16, 24, 31], "expand": 16, "dream": 16, "up": [16, 20, 24, 25, 33], "interpret": [16, 18], "state": [16, 17, 20, 23, 24, 28, 29], "counti": [16, 24], "zone": 16, "db": 16, "ihf": 16, "warn": [16, 17, 18, 22, 24, 26, 28, 32], "ccfp": 16, "around": [16, 17, 18], "concept": 16, "interact": 16, "expect": 16, "them": [16, 17, 23, 28], "automat": [16, 25], "rest": [16, 24], "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, 28, 31], "prepar": 16, "gfegriddata": 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, 25], "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, 25, 26, 28, 29, 31], "griddatafactori": 16, "while": [16, 25, 28, 30, 31], "calcul": [16, 18, 23, 27, 30], "befor": [16, 22, 31], "mapgeometryfactori": 16, "u": [16, 17, 18, 19, 20, 23, 24, 25, 28, 30, 31], "unsupportedoperationexcept": 16, "javadoc": 16, "obsgeometryfactori": 16, "field": [16, 24], "writer": [16, 32], "mind": 16, "reason": 16, "behavior": 16, "reduc": 16, "amount": [16, 28, 29], "action": 16, "g": [16, 19, 20, 25, 30], "handler": 16, "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, 28], "back": 16, "caller": 16, "By": [16, 17, 20, 23, 28, 31], "abl": [16, 17, 25], "understand": [16, 18], "avoid": [16, 28], "continu": [16, 25, 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, 28, 30, 31], "faster": 16, "less": [16, 19], "getstoragerequest": 16, "No": [16, 25, 26], "bound": [16, 17, 18, 23, 24, 25, 28, 31], "box": [16, 17, 18, 27, 31], "search": 16, "icao": 16, "airport": [16, 25], "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, 25, 31], "enum": 16, "correl": [16, 26, 31], "made": [16, 17, 20, 23, 24, 25, 31], "getdata": 16, "replac": [16, 19], "getlatcoord": 16, "getloncoord": 16, "cell": [16, 18, 24, 25, 28, 31], "r": [16, 19, 20, 21, 25, 30], "igriddatafactori": 16, "subset": [16, 17], "move": 16, "don": [16, 20, 25], "igeometrydatafactori": 16, "notebook": [17, 19, 21, 24, 26, 27, 29, 30, 33], "tutori": [17, 18, 20, 22, 23, 24, 25, 28, 31], "gempak": [17, 25], "connnect": 17, "throughout": [17, 20, 22, 23, 24, 25, 28, 31], "subsequ": [17, 18, 20, 23, 24, 25, 28], "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, 25, 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, 25], "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, 25, 28, 31], "With": [17, 20, 23, 24, 25, 31], "just": [17, 22, 23, 25, 31, 33], "edexserv": [17, 21, 23, 28], "stationnam": [17, 23, 28], "our": [17, 18, 19, 20, 22, 23, 24, 25, 27, 28, 29, 31, 33], "so": [17, 18, 20, 22, 23, 25, 28, 31], "last": [17, 22, 23, 28, 31], "minut": [17, 28, 29], "kept": 17, "variabl": [17, 20, 23, 25, 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, 24, 25, 26, 27, 28, 29, 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, 26, 28], "categori": [17, 24, 26, 28, 29, 31], "runtimewarn": [17, 26, 28], "tair": 17, "dtype": [17, 19, 23, 28], "9999": [17, 23, 27, 28, 30], "8": [17, 18, 23, 27, 28, 29], "32": [17, 19, 26, 27, 28, 29], "order": [17, 18, 19, 23, 24, 28, 31, 33], "distinguish": [17, 28], "ll": [17, 18, 22, 23, 24, 25, 28, 31, 33], "tip": [17, 20, 24], "try": [17, 22, 23, 25, 28], "plai": [17, 18], "how": [17, 18, 22, 23, 25, 31, 33], "purpl": 17, "25": [17, 22, 27], "35": [17, 22, 23, 25, 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, 25, 31], "figur": [17, 18, 19, 20, 23, 25, 28, 29, 30, 31], "fig": [17, 18, 20, 21, 23, 24, 25, 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], "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, 25, 28, 31], "variant": [18, 25], "recent": [18, 23, 25, 28, 30], "74": [18, 27], "easiest": [18, 28, 31], "logic": [18, 24, 25, 28, 31], "axi": [18, 25, 28, 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, 28, 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, 25, 28, 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], "colorbar": [18, 24, 26, 27, 29], "cbar": [18, 24, 26, 27, 29], "label": [18, 25, 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, 26, 27, 28, 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, 25], "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, 29], "dpt": [19, 22, 28], "uw": [19, 22], "vw": [19, 22], "pressur": [19, 25, 28, 29, 30], "pai": 19, "attent": 19, "switch": [19, 31], "nam": 19, "40km": 19, "dewpoint": [19, 23, 28, 30], "wind": [19, 21, 22, 23, 25, 28, 30], "inlin": [19, 21, 26, 27, 29, 30], "plot": [19, 20, 21, 22, 24, 26, 30], "skewt": [19, 25, 30], "hodograph": [19, 25, 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, 28], "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, "empti": [19, 23], "join": 19, "836": 19, "4mb": 19, "levelreq": 19, "fhag": 19, "lvl": [19, 22], "_": 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, 27, 28, 29], "0mb": [19, 22], "rcparam": [19, 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, 25, 30], "set_xlim": [19, 25, 30], "40": [19, 22, 25], "titl": [19, 23, 25, 28, 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, 28, 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, 25, 26, 28, 29], "6": [19, 27, 28, 29], "18": [19, 21, 25, 26, 27, 28, 29], "1mb": 19, "22": [19, 21, 24, 25, 27, 28], "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, 28, 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], "satellite_height": 20, "sweep_axi": 20, "coord": [20, 25], "origin": 20, "3626751": 20, "1382263": 20, "1583666": 20, "4588674": 20, "dimens": 20, "pixel": 20, "size": [20, 25, 26, 29, 31], "inch": [20, 27, 28], "confus": 20, "pad": [20, 31], "exact": [20, 25], "buffer": [20, 24, 28], "width": 20, "dpi": 20, "get_dpi": 20, "gca": 20, "remov": [20, 25, 31], "subplotpar": 20, "left": [20, 30], "b": [20, 25, 28], "bottom": [20, 31], "figw": 20, "figh": 20, "set_size_inch": 20, "write_imag": 20, "next": [20, 23, 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, 25, 27, 28, 31], "cyan": 20, "xloc": 20, "arang": 20, "180": [20, 29], "footnotestr": 20, "annot": [20, 24], "xycoord": 20, "fraction": 20, "textcoord": [20, 24], "va": 20, "savefig": 20, "bbox_inch": 20, "tight": 20, "pad_inch": 20, "exactli": [20, 25], "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, 28, 31], "grab": [20, 23, 28], "png": 20, "clip": 20, "dstack": 20, "rgbname": 20, "2021": [20, 22], "05": [20, 25, 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, 28], "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, 25], "global": 22, "forcast": 22, "gf": [22, 25], "talk": 22, "quit": 22, "bit": 22, "util": 22, "onlin": 22, "help": [22, 23, 28, 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, 25, 27, 28, 31], "mrm": 22, "grid_request": 22, "geograph": [22, 24, 33], "nw": [22, 23, 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, 25, 28, 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, 25], "0_610": 22, "450": 22, "575": [22, 29], "60": [22, 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, "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, "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, 28, 32], "topographi": [22, 28, 32], "reformat": 23, "styliz": [23, 28], "timrang": [23, 28], "cfeatur": [23, 31], "calc": [23, 25, 28, 30], "wind_compon": [23, 28, 30], "stationplotlayout": [23, 28], "sky_cov": [23, 28], "coverag": [23, 28], "integ": [23, 26, 28], "ovc": [23, 28], "bkn": [23, 28], "sct": [23, 28], "single_value_param": 23, "winddir": [23, 28], "windspe": [23, 28], "multi_value_param": 23, "too": 23, "clutter": [23, 25], "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, 25, 28, 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, "timeob": [23, 28], "dynam": 23, "station_nam": 23, "time_titl": 23, "revers": 23, "avail_param": 23, "alreadi": [23, 25, 28, 33], "skip": 23, "correct": [23, 28, 31], "put": [23, 28], "hand": [23, 28], "later": [23, 25, 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, 28, 30], "land": [23, 31], "ocean": 23, "lake": 23, "border": 23, "give": [23, 28, 31], "contextu": 23, "layout": 23, "95": 23, "central_latitud": 23, "standard_parallel": 23, "add_subplot": 23, "118": 23, "73": 23, "23": [23, 26, 28, 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, 28], "clip_on": [23, 28], "plot_text": 23, "aviat": [23, 28], "static": [23, 28], "context": [24, 28], "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, "column": [24, 29, 31], "multilinestr": 24, "boulder": 24, "bou": 24, "area": [24, 27, 28, 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, 25, 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, "vertic": [25, 30, 31, 32], "exp": 25, "vapor_pressur": 25, "wind_spe": [25, 30], "wind_direct": 25, "forecastmodel": 25, "reporttyp": 25, "spechum": 25, "ucomp": 25, "vcomp": 25, "shown": [25, 31], "step": [25, 30, 31], "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], "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, "municip": 25, "fairmont": 25, "minnesota": 25, "exit": 25, "verifi": 25, "were": 25, "obj": 25, "fcsthour": 25, "period": 25, "94": [25, 26], "41999816894531": 25, "43": [25, 29], "65000152587891": 25, "2022": 25, "08": [25, 26, 29], "aug": 25, "construct": [25, 31], "moistur": 25, "spec": 25, "zero": 25, "That": 25, "length": 25, "humidti": 25, "equal": 25, "tmp": [25, 28], "prs2": 25, "tmp2": 25, "uc": 25, "vc": 25, "plugin": [25, 30], "ourselv": 25, "manual": [25, 31], "ncep": 25, "nsharp": 25, "tfull": 25, "pfull": 25, "mbar": [25, 28, 30], "94384": 25, "spd": [25, 30], "dir": 25, "deg": [25, 28], "mix": 25, "vapor": 25, "rmix": 25, "kg": [25, 26], "td": [25, 30], "assum": 25, "td2": 25, "soundingrequest": 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, "zoom": 25, "highlight": 25, "slight": 25, "skew": [25, 30], "purpos": 25, "18z": 25, "fh": 25, "42": [25, 26, 27, 29], "z": 25, "2f": 25, "secondari": 25, "zoom_ax": 25, "bbox_to_anchor": [25, 31], "bbox_transform": 25, "transax": 25, "skew2": 25, "hum": 25, "legaci": 25, "calucl": 25, "legend": 25, "explain": 25, "redund": 25, "set_xlabel": 25, "set_ylabel": 25, "970": 25, "11": [25, 26, 27, 28, 29], "region": [25, 32], "indicate_inset_zoom": 25, "dispos": 25, "unnecessari": 25, "close": 25, "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], "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, 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, "31": [26, 28, 29], "0_230_360_0": 26, "0_359": 26, "230": 26, "360": 26, "0_920_360_0": 26, "0555557e": 26, "09": [26, 29], "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, "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, 28, 29], "21": 27, "79": 27, "24": [27, 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, 28], "140": 27, "63": [27, 28], "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, "florida": 28, "simple_layout": 28, "e7e7e7": 28, "simpl": 28, "speed": 28, "sea": 28, "account": 28, "miss": [28, 30], "arr": 28, "air_pressure_at_sea_level": 28, "sealevelpress": 28, "present_weath": 28, "sky": 28, "maks": 28, "drawn": [28, 31], "barb": 28, "dew": 28, "outlin": 28, "neighbor": 28, "maps_request": 28, "fl": 28, "ga": 28, "al": 28, "sc": 28, "la": 28, "maps_respons": 28, "ten": 28, "thousand": 28, "fl_lat": 28, "fl_lon": 28, "67402": 28, "50934": 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, "63429260299995": 28, "02105161600002": 28, "50101280200016": 28, "03199876199994": 28, "unreason": 28, "nov": 28, "reus": 28, "effici": 28, "shared_param": 28, "narrow": 28, "metar_request": 28, "specifc": 28, "metar_param": 28, "all_metar_param": 28, "vividsolut": 28, "jt": 28, "0x13abe40a0": 28, "syn_request": 28, "syn_param": 28, "all_syn_param": 28, "0x105048bb0": 28, "obtain": 28, "still": 28, "metar_respons": 28, "tuse": 28, "syn_respons": 28, "4116": 28, "179": 28, "259": [28, 29], "metars_data": 28, "synoptic_data": 28, "retreiv": 28, "earlier": [28, 31], "000000": 28, "0x13b2ae5e0": 28, "On": 28, "ax_syn": 28, "fig_syn": 28, "synopot": 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, "04": [29, 31], "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, "li": 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, "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, "chart": 30, "mandatori": 30, "signific": 30, "tri": 30, "mtri": 30, "lcl": 30, "dry_laps": 30, "parcel_profil": 30, "concaten": 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, "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, "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, "turn": 31, "involv": 31, "draw_advisori": 31, "draw_watch": 31, "draw_warn": 31, "draw_stat": 31, "64": 31, "49": 31, "comma": 31, "space": 31, "bigger": 31, "font": 31, "horizonat": 31, "under": 31, "larger": 31, "ncol": 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, "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, 25, 28, 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, 25, 28, 31], "avail": [15, 22, 25, 29], "data": [15, 16, 17, 18, 20, 22, 23, 25, 28, 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, 25, 31], "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, 28], "interfac": 16, "java": 16, "onli": [16, 33], "color": [17, 18], "surfac": [17, 28], "temperatur": 17, "plot": [17, 18, 23, 25, 28, 31, 32], "object": [17, 18, 20, 22, 23, 24, 25, 28, 31], "tabl": [17, 18, 20, 22, 23, 24, 25, 28, 31], "content": [17, 18, 20, 22, 23, 24, 25, 28, 31], "1": [17, 18, 20, 22, 23, 24, 25, 31], "import": [17, 18, 20, 22, 23, 24, 25, 28, 31], "2": [17, 18, 20, 22, 23, 24, 25, 31], "initi": [17, 20, 23, 24, 28, 31], "setup": [17, 20, 23, 28, 31], "geograph": [17, 28], "filter": [17, 20, 23, 24, 25, 28, 31], "connect": [17, 20, 22, 23, 24, 25, 28, 31], "3": [17, 18, 20, 22, 23, 24, 25, 31], "time": [17, 18, 22, 23, 25, 28, 31], "4": [17, 18, 20, 22, 23, 24, 25, 31], "access": [17, 33], "convert": 17, "temp": 17, "5": [17, 18, 20, 22, 23, 24, 25, 31], "defin": [17, 18, 20, 28], "threshold": 17, "6": [17, 18, 20, 22, 23, 24, 25, 31], "7": [17, 22, 23, 24, 25, 31], "see": [17, 18, 20, 22, 23, 24, 25, 28, 31], "also": [17, 18, 20, 22, 23, 24, 25, 28, 31], "addit": [17, 18, 20, 23, 24, 25, 28, 31], "limit": 18, "result": 18, "base": 18, "function": [18, 20, 23, 24, 28, 31], "make_map": [18, 24, 28, 31], "pcolormesh": 18, "contourf": 18, "relat": [18, 20, 22, 23, 25, 28, 31], "notebook": [18, 20, 22, 23, 25, 28, 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, 28], "definit": 20, "set_siz": 20, "write_img": 20, "get": [20, 22, 23, 25, 28, 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, 25], "8": [22, 24, 25, 31], "9": [22, 24, 31], "10": [22, 24], "metar": [23, 28], "station": 23, "metpi": 23, "get_cloud_cov": [23, 28], "name": [23, 25], "extract": [23, 28, 31], "all": 23, "popul": 23, "dictionari": 23, "map": [24, 28], "resourc": 24, "topographi": 24, "from": [24, 25], "cwa": 24, "draw": [24, 28, 31], "merg": 24, "interst": 24, "boundari": [24, 31], "nearbi": 24, "citi": 24, "lake": 24, "major": 24, "river": 24, "11": 24, "prepar": 25, "calcul": 25, "dewpoint": 25, "specif": 25, "humid": 25, "method": 25, "nexrad": 26, "level3": 26, "precip": 27, "accumul": 27, "region": [27, 28], "Of": 27, "interest": 27, "ob": 28, "extract_plotting_data": 28, "plot_data": 28, "respons": 28, "common": 28, "synopt": 28, "sfcob": 28, "both": 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, "u": 33}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "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": 57}, "alltitles": {"About Unidata AWIPS": [[0, "about-unidata-awips"]], "License": [[0, "license"]], "About AWIPS": [[0, "about-awips"]], "EDEX": [[0, "edex"]], "CAVE": [[0, "cave"]], "Alertviz": [[0, "alertviz"]], "LDM": [[0, "id1"]], "edexBridge": [[0, "edexbridge"]], "Qpid": [[0, "id2"]], "PostgreSQL": [[0, "postgresql"]], "HDF5": [[0, "hdf5"]], "PyPIES (httpd-pypies)": [[0, "pypies-httpd-pypies"]], "CombinedTimeQuery": [[1, "module-awips.dataaccess.CombinedTimeQuery"]], "DataAccessLayer": [[2, "module-awips.dataaccess.DataAccessLayer"]], "DateTimeConverter": [[3, "module-awips.DateTimeConverter"]], "IDataRequest (newDataRequest())": [[4, "idatarequest-newdatarequest"]], "IFPClient": [[5, "module-awips.gfe.IFPClient"]], "ModelSounding": [[6, "module-awips.dataaccess.ModelSounding"]], "PyData": [[7, "module-awips.dataaccess.PyData"]], "PyGeometryData": [[8, "module-awips.dataaccess.PyGeometryData"]], "PyGridData": [[9, "module-awips.dataaccess.PyGridData"]], "RadarCommon": [[10, "module-awips.RadarCommon"]], "ThriftClient": [[11, "module-awips.ThriftClient"]], "ThriftClientRouter": [[12, "module-awips.dataaccess.ThriftClientRouter"]], "TimeUtil": [[13, "module-awips.TimeUtil"]], "API Documentation": [[14, "api-documentation"]], "Available Data Types": [[15, "available-data-types"]], "satellite": [[15, "satellite"]], "binlightning": [[15, "binlightning"]], "grid": [[15, "grid"]], "warning": [[15, "warning"]], "radar": [[15, "radar"]], "Development Guide": [[16, "development-guide"]], "Writing a New Factory": [[16, "writing-a-new-factory"]], "Registering the Factory with the Framework": [[16, "registering-the-factory-with-the-framework"]], "Retrieving Data Using the Factory": [[16, "retrieving-data-using-the-factory"]], "Development Background": [[16, "development-background"]], "Design/Implementation": [[16, "design-implementation"]], "How users of the framework retrieve and use the data": [[16, "how-users-of-the-framework-retrieve-and-use-the-data"]], "How plugin developers contribute support for new datatypes": [[16, "how-plugin-developers-contribute-support-for-new-datatypes"]], "How the framework works when it receives a request": [[16, "how-the-framework-works-when-it-receives-a-request"]], "Request interfaces": [[16, "request-interfaces"]], "Data Interfaces": [[16, "data-interfaces"]], "Factory Interfaces (Java only)": [[16, "factory-interfaces-java-only"]], "Colored Surface Temperature Plot": [[17, "colored-surface-temperature-plot"]], "Objectives": [[17, "objectives"], [18, "objectives"], [20, "objectives"], [22, "objectives"], [23, "objectives"], [24, "objectives"], [25, "objectives"], [28, "objectives"], [31, "objectives"]], "Table of Contents": [[17, "table-of-contents"], [18, "table-of-contents"], [20, "table-of-contents"], [22, "table-of-contents"], [23, "table-of-contents"], [24, "table-of-contents"], [25, "table-of-contents"], [28, "table-of-contents"], [31, "table-of-contents"]], "1 Imports": [[17, "imports"], [18, "imports"], [20, "imports"], [22, "imports"], [23, "imports"], [24, "imports"], [25, "imports"], [31, "imports"]], "2 Initial Setup": [[17, "initial-setup"], [20, "initial-setup"]], "2.1 Geographic Filter": [[17, "geographic-filter"]], "2.2 EDEX Connection": [[17, "edex-connection"]], "3 Filter by Time": [[17, "filter-by-time"]], "4 Access and Convert Temp Data": [[17, "access-and-convert-temp-data"]], "5 Define Temperature Thresholds": [[17, "define-temperature-thresholds"]], "6 Plot the Data!": [[17, "plot-the-data"], [23, "plot-the-data"]], "7 See Also": [[17, "see-also"], [23, "see-also"]], "7.1 Additional Documention": [[17, "additional-documention"]], "Colorized Grid Data": [[18, "colorized-grid-data"]], "2 Define Data Request": [[18, "define-data-request"]], "3 Limit Results Based on Time": [[18, "limit-results-based-on-time"]], "4 Function: make_map()": [[18, "function-make-map"]], "5 Use the Grid Data!": [[18, "use-the-grid-data"]], "5.1 Plot Using pcolormesh": [[18, "plot-using-pcolormesh"]], "5.2 Plot Using contourf": [[18, "plot-using-contourf"]], "6 See Also": [[18, "see-also"], [20, "see-also"]], "6.1 Related Notebooks": [[18, "related-notebooks"], [20, "related-notebooks"]], "6.2 Additional Documentation": [[18, "additional-documentation"], [20, "additional-documentation"]], "Forecast Model Vertical Sounding": [[19, "forecast-model-vertical-sounding"]], "Skew-T/Log-P": [[19, "skew-t-log-p"]], "Model Sounding Comparison": [[19, "model-sounding-comparison"]], "GOES CIRA Product Writer": [[20, "goes-cira-product-writer"]], "2.1 EDEX Connection": [[20, "edex-connection"]], "2.2 Parameter Definition": [[20, "parameter-definition"]], "3 Function: set_size()": [[20, "function-set-size"]], "4 Function: write_img()": [[20, "function-write-img"]], "5 Get the Data and Write it Out!": [[20, "get-the-data-and-write-it-out"]], "5.1 Filter the Data": [[20, "filter-the-data"]], "5.2 Define Output Location": [[20, "define-output-location"]], "5.3 Write Out GOES Images": [[20, "write-out-goes-images"]], "GOES Geostationary Lightning Mapper": [[21, "goes-geostationary-lightning-mapper"]], "GLM Sources and Parameters": [[21, "glm-sources-and-parameters"]], "Grid Levels and Parameters": [[22, "grid-levels-and-parameters"]], "2 Connect to EDEX": [[22, "connect-to-edex"], [24, "connect-to-edex"]], "3 Get a List of Supported Data Types": [[22, "get-a-list-of-supported-data-types"]], "4 Create a New Data Request and Set the Type": [[22, "create-a-new-data-request-and-set-the-type"]], "5 Get Available Locations": [[22, "get-available-locations"]], "6 Get Available Parameters": [[22, "get-available-parameters"]], "7 Get Available Levels": [[22, "get-available-levels"]], "8 Get Available Times": [[22, "get-available-times"]], "9 Get the Data!": [[22, "get-the-data"]], "10 See Also": [[22, "see-also"]], "10.1 Related Notebooks": [[22, "related-notebooks"]], "METAR Station Plot with MetPy": [[23, "metar-station-plot-with-metpy"]], "2 Function: get_cloud_cover()": [[23, "function-get-cloud-cover"]], "3 Initial Setup": [[23, "initial-setup"]], "3.1 Initial EDEX Connection": [[23, "initial-edex-connection"]], "3.2 Setting Connection Location Names": [[23, "setting-connection-location-names"]], "4 Filter by Time": [[23, "filter-by-time"]], "5 Use the Data!": [[23, "use-the-data"]], "5.1 Get the Data!": [[23, "get-the-data"]], "5.2 Extract all Parameters": [[23, "extract-all-parameters"]], "5.3 Populate the Data Dictionary": [[23, "populate-the-data-dictionary"]], "7.1 Related Notebooks": [[23, "related-notebooks"]], "7.2 Additional Documentation": [[23, "additional-documentation"]], "Map Resources and Topography": [[24, "map-resources-and-topography"]], "3 Function: make_map()": [[24, "function-make-map"]], "4 Create Initial Map From CWA": [[24, "create-initial-map-from-cwa"]], "5 Draw Merged CWA": [[24, "draw-merged-cwa"]], "6 Draw Interstates using Boundary Filter": [[24, "draw-interstates-using-boundary-filter"]], "7 Draw Nearby Cities": [[24, "draw-nearby-cities"]], "8 Draw Nearby Lakes": [[24, "draw-nearby-lakes"]], "9 Draw Major Rivers": [[24, "draw-major-rivers"]], "10 Draw Topography": [[24, "draw-topography"]], "11 See Also": [[24, "see-also"]], "11.1 Additional Documentation": [[24, "additional-documentation"]], "Model Sounding Data": [[25, "model-sounding-data"]], "2 EDEX Connection": [[25, "edex-connection"]], "3 Setting Location": [[25, "setting-location"]], "3.1 Available Location Names": [[25, "available-location-names"]], "3.2 Setting the Location Name": [[25, "setting-the-location-name"]], "4 Filtering by Time": [[25, "filtering-by-time"]], "5 Get the Data!": [[25, "get-the-data"]], "6 Use the Data!": [[25, "use-the-data"]], "6.1 Prepare Data Objects": [[25, "prepare-data-objects"]], "6.2 Calculate Dewpoint from Specific Humidity": [[25, "calculate-dewpoint-from-specific-humidity"]], "6.2.1 Method 1": [[25, "method-1"]], "6.2.2 Method 2": [[25, "method-2"]], "6.2.3 Method 3": [[25, "method-3"]], "7 Plot the Data!": [[25, "plot-the-data"]], "8 See Also": [[25, "see-also"]], "8.1 Related Notebooks": [[25, "related-notebooks"]], "8.2 Additional Documentation": [[25, "additional-documentation"]], "NEXRAD Level3 Radar": [[26, "nexrad-level3-radar"]], "Precip Accumulation-Region Of Interest": [[27, "precip-accumulation-region-of-interest"]], "Regional Surface Obs Plot": [[28, "regional-surface-obs-plot"]], "Imports": [[28, "imports"]], "Function: get_cloud_cover()": [[28, "function-get-cloud-cover"]], "Function: make_map()": [[28, "function-make-map"]], "Function: extract_plotting_data()": [[28, "function-extract-plotting-data"]], "Function: plot_data()": [[28, "function-plot-data"]], "Initial Setup": [[28, "initial-setup"]], "Initial EDEX Connection": [[28, "initial-edex-connection"]], "Maps Request and Response": [[28, "maps-request-and-response"]], "Define Geographic Filter": [[28, "define-geographic-filter"]], "Define Time Filter": [[28, "define-time-filter"]], "Define Common Parameters for Data Requests": [[28, "define-common-parameters-for-data-requests"]], "Define METAR Request": [[28, "define-metar-request"]], "Define Synoptic Request": [[28, "define-synoptic-request"]], "Get the Data!": [[28, "get-the-data"]], "Get the EDEX Responses": [[28, "get-the-edex-responses"]], "Extract Plotting Data": [[28, "extract-plotting-data"]], "Plot the Data": [[28, "plot-the-data"]], "Draw the Region": [[28, "draw-the-region"]], "Plot METAR Data": [[28, "plot-metar-data"]], "Plot Synoptic (sfcobs)": [[28, "plot-synoptic-sfcobs"]], "Plot both METAR and Synoptic Data": [[28, "plot-both-metar-and-synoptic-data"]], "See Also": [[28, "see-also"]], "Related Notebooks": [[28, "related-notebooks"]], "Additional Documentation": [[28, "additional-documentation"]], "Satellite Imagery": [[29, "satellite-imagery"]], "Available Sources, Creating Entities, Sectors, and Products": [[29, "available-sources-creating-entities-sectors-and-products"]], "GOES 16 Mesoscale Sectors": [[29, "goes-16-mesoscale-sectors"]], "Upper Air BUFR Soundings": [[30, "upper-air-bufr-soundings"]], "Watch Warning and Advisory Plotting": [[31, "watch-warning-and-advisory-plotting"]], "2 Function: make_map()": [[31, "function-make-map"]], "3 Function: get_color()": [[31, "function-get-color"]], "4 Function get_title()": [[31, "function-get-title"]], "5 Initial Setup": [[31, "initial-setup"]], "5.1 EDEX Connection": [[31, "edex-connection"]], "5.2 Significance (Sig) Constants": [[31, "significance-sig-constants"]], "6 Filter by Time": [[31, "filter-by-time"]], "7 Use the Data!": [[31, "use-the-data"]], "7.1 Get the Data": [[31, "get-the-data"]], "7.2 Extract Phensigs, Geometries, and Times": [[31, "extract-phensigs-geometries-and-times"]], "8 Plot the Data!": [[31, "plot-the-data"]], "8.1 Create State and Political Boundaries": [[31, "create-state-and-political-boundaries"]], "8.2 Draw the Plot and Legend for WWAs": [[31, "draw-the-plot-and-legend-for-wwas"]], "9 See Also": [[31, "see-also"]], "9.1 Related Notebooks": [[31, "related-notebooks"]], "9.2 Additional Documentation": [[31, "additional-documentation"]], "Data Plotting Examples": [[32, "data-plotting-examples"]], "Python AWIPS Data Access Framework": [[33, "python-awips-data-access-framework"]], "Pre-requisite Software": [[33, "pre-requisite-software"]], "Package-Only Install": [[33, "package-only-install"]], "Pip Install": [[33, "pip-install"]], "Conda Install": [[33, "conda-install"]], "Source Code with Examples Install": [[33, "source-code-with-examples-install"]], "Questions \u2013 Contact Us!": [[33, "questions-contact-us"]]}, "indexentries": {"awips.dataaccess.combinedtimequery": [[1, "module-awips.dataaccess.CombinedTimeQuery"]], "getavailabletimes() (in module awips.dataaccess.combinedtimequery)": [[1, "awips.dataaccess.CombinedTimeQuery.getAvailableTimes"]], "module": [[1, "module-awips.dataaccess.CombinedTimeQuery"], [2, "module-awips.dataaccess.DataAccessLayer"], [3, "module-awips.DateTimeConverter"], [5, "module-awips.gfe.IFPClient"], [6, "module-awips.dataaccess.ModelSounding"], [7, "module-awips.dataaccess.PyData"], [8, "module-awips.dataaccess.PyGeometryData"], [9, "module-awips.dataaccess.PyGridData"], [10, "module-awips.RadarCommon"], [11, "module-awips.ThriftClient"], [12, "module-awips.dataaccess.ThriftClientRouter"], [13, "module-awips.TimeUtil"]], "awips.dataaccess.dataaccesslayer": [[2, "module-awips.dataaccess.DataAccessLayer"]], "changeedexhost() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.changeEDEXHost"]], "getavailablelevels() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getAvailableLevels"]], "getavailablelocationnames() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getAvailableLocationNames"]], "getavailableparameters() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getAvailableParameters"]], "getavailabletimes() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getAvailableTimes"]], "getforecastrun() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getForecastRun"]], "getgeometrydata() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getGeometryData"]], "getgriddata() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getGridData"]], "getidentifiervalues() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getIdentifierValues"]], "getmetarobs() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getMetarObs"]], "getoptionalidentifiers() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getOptionalIdentifiers"]], "getradarproductids() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getRadarProductIDs"]], "getradarproductnames() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getRadarProductNames"]], "getrequiredidentifiers() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getRequiredIdentifiers"]], "getsupporteddatatypes() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getSupportedDatatypes"]], "getsynopticobs() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.getSynopticObs"]], "newdatarequest() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.newDataRequest"]], "setlazyloadgridlatlon() (in module awips.dataaccess.dataaccesslayer)": [[2, "awips.dataaccess.DataAccessLayer.setLazyLoadGridLatLon"]], "awips.datetimeconverter": [[3, "module-awips.DateTimeConverter"]], "constructtimerange() (in module awips.datetimeconverter)": [[3, "awips.DateTimeConverter.constructTimeRange"]], "converttodatetime() (in module awips.datetimeconverter)": [[3, "awips.DateTimeConverter.convertToDateTime"]], "idatarequest (class in awips.dataaccess)": [[4, "awips.dataaccess.IDataRequest"]], "__weakref__ (awips.dataaccess.idatarequest attribute)": [[4, "awips.dataaccess.IDataRequest.__weakref__"]], "addidentifier() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.addIdentifier"]], "getdatatype() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.getDatatype"]], "getenvelope() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.getEnvelope"]], "getidentifiers() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.getIdentifiers"]], "getlevels() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.getLevels"]], "getlocationnames() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.getLocationNames"]], "setdatatype() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.setDatatype"]], "setenvelope() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.setEnvelope"]], "setlevels() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.setLevels"]], "setlocationnames() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.setLocationNames"]], "setparameters() (awips.dataaccess.idatarequest method)": [[4, "awips.dataaccess.IDataRequest.setParameters"]], "ifpclient (class in awips.gfe.ifpclient)": [[5, "awips.gfe.IFPClient.IFPClient"]], "awips.gfe.ifpclient": [[5, "module-awips.gfe.IFPClient"]], "commitgrid() (awips.gfe.ifpclient.ifpclient method)": [[5, "awips.gfe.IFPClient.IFPClient.commitGrid"]], "getgridinventory() (awips.gfe.ifpclient.ifpclient method)": [[5, "awips.gfe.IFPClient.IFPClient.getGridInventory"]], "getparmlist() (awips.gfe.ifpclient.ifpclient method)": [[5, "awips.gfe.IFPClient.IFPClient.getParmList"]], "getselecttr() (awips.gfe.ifpclient.ifpclient method)": [[5, "awips.gfe.IFPClient.IFPClient.getSelectTR"]], "getsiteid() (awips.gfe.ifpclient.ifpclient method)": [[5, "awips.gfe.IFPClient.IFPClient.getSiteID"]], "awips.dataaccess.modelsounding": [[6, "module-awips.dataaccess.ModelSounding"]], "changeedexhost() (in module awips.dataaccess.modelsounding)": [[6, "awips.dataaccess.ModelSounding.changeEDEXHost"]], "getsounding() (in module awips.dataaccess.modelsounding)": [[6, "awips.dataaccess.ModelSounding.getSounding"]], "pydata (class in awips.dataaccess.pydata)": [[7, "awips.dataaccess.PyData.PyData"]], "awips.dataaccess.pydata": [[7, "module-awips.dataaccess.PyData"]], "getattribute() (awips.dataaccess.pydata.pydata method)": [[7, "awips.dataaccess.PyData.PyData.getAttribute"]], "getattributes() (awips.dataaccess.pydata.pydata method)": [[7, "awips.dataaccess.PyData.PyData.getAttributes"]], "getdatatime() (awips.dataaccess.pydata.pydata method)": [[7, "awips.dataaccess.PyData.PyData.getDataTime"]], "getlevel() (awips.dataaccess.pydata.pydata method)": [[7, "awips.dataaccess.PyData.PyData.getLevel"]], "getlocationname() (awips.dataaccess.pydata.pydata method)": [[7, "awips.dataaccess.PyData.PyData.getLocationName"]], "pygeometrydata (class in awips.dataaccess.pygeometrydata)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData"]], "awips.dataaccess.pygeometrydata": [[8, "module-awips.dataaccess.PyGeometryData"]], "getgeometry() (awips.dataaccess.pygeometrydata.pygeometrydata method)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData.getGeometry"]], "getnumber() (awips.dataaccess.pygeometrydata.pygeometrydata method)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData.getNumber"]], "getparameters() (awips.dataaccess.pygeometrydata.pygeometrydata method)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData.getParameters"]], "getstring() (awips.dataaccess.pygeometrydata.pygeometrydata method)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData.getString"]], "gettype() (awips.dataaccess.pygeometrydata.pygeometrydata method)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData.getType"]], "getunit() (awips.dataaccess.pygeometrydata.pygeometrydata method)": [[8, "awips.dataaccess.PyGeometryData.PyGeometryData.getUnit"]], "pygriddata (class in awips.dataaccess.pygriddata)": [[9, "awips.dataaccess.PyGridData.PyGridData"]], "awips.dataaccess.pygriddata": [[9, "module-awips.dataaccess.PyGridData"]], "getlatloncoords() (awips.dataaccess.pygriddata.pygriddata method)": [[9, "awips.dataaccess.PyGridData.PyGridData.getLatLonCoords"]], "getparameter() (awips.dataaccess.pygriddata.pygriddata method)": [[9, "awips.dataaccess.PyGridData.PyGridData.getParameter"]], "getrawdata() (awips.dataaccess.pygriddata.pygriddata method)": [[9, "awips.dataaccess.PyGridData.PyGridData.getRawData"]], "getunit() (awips.dataaccess.pygriddata.pygriddata method)": [[9, "awips.dataaccess.PyGridData.PyGridData.getUnit"]], "awips.radarcommon": [[10, "module-awips.RadarCommon"]], "encode_dep_vals() (in module awips.radarcommon)": [[10, "awips.RadarCommon.encode_dep_vals"]], "encode_radial() (in module awips.radarcommon)": [[10, "awips.RadarCommon.encode_radial"]], "encode_thresh_vals() (in module awips.radarcommon)": [[10, "awips.RadarCommon.encode_thresh_vals"]], "get_data_type() (in module awips.radarcommon)": [[10, "awips.RadarCommon.get_data_type"]], "get_datetime_str() (in module awips.radarcommon)": [[10, "awips.RadarCommon.get_datetime_str"]], "get_hdf5_data() (in module awips.radarcommon)": [[10, "awips.RadarCommon.get_hdf5_data"]], "get_header() (in module awips.radarcommon)": [[10, "awips.RadarCommon.get_header"]], "thriftclient (class in awips.thriftclient)": [[11, "awips.ThriftClient.ThriftClient"]], "thriftrequestexception": [[11, "awips.ThriftClient.ThriftRequestException"]], "awips.thriftclient": [[11, "module-awips.ThriftClient"]], "sendrequest() (awips.thriftclient.thriftclient method)": [[11, "awips.ThriftClient.ThriftClient.sendRequest"]], "lazygridlatlon (class in awips.dataaccess.thriftclientrouter)": [[12, "awips.dataaccess.ThriftClientRouter.LazyGridLatLon"]], "thriftclientrouter (class in awips.dataaccess.thriftclientrouter)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter"]], "awips.dataaccess.thriftclientrouter": [[12, "module-awips.dataaccess.ThriftClientRouter"]], "getavailablelevels() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getAvailableLevels"]], "getavailablelocationnames() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getAvailableLocationNames"]], "getavailableparameters() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getAvailableParameters"]], "getavailabletimes() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getAvailableTimes"]], "getgeometrydata() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getGeometryData"]], "getgriddata() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getGridData"]], "getidentifiervalues() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getIdentifierValues"]], "getnotificationfilter() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getNotificationFilter"]], "getoptionalidentifiers() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getOptionalIdentifiers"]], "getrequiredidentifiers() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getRequiredIdentifiers"]], "getsupporteddatatypes() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.getSupportedDatatypes"]], "newdatarequest() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.newDataRequest"]], "setlazyloadgridlatlon() (awips.dataaccess.thriftclientrouter.thriftclientrouter method)": [[12, "awips.dataaccess.ThriftClientRouter.ThriftClientRouter.setLazyLoadGridLatLon"]], "awips.timeutil": [[13, "module-awips.TimeUtil"]], "determinedrtoffset() (in module awips.timeutil)": [[13, "awips.TimeUtil.determineDrtOffset"]], "maketime() (in module awips.timeutil)": [[13, "awips.TimeUtil.makeTime"]]}}) \ No newline at end of file