2020-09-09 20:02:35 +00:00
<!DOCTYPE html>
< html class = "writer-html5" lang = "en" >
< head >
2021-03-23 16:15:37 +00:00
< meta charset = "utf-8" / >
2020-09-09 20:02:35 +00:00
2021-03-23 16:15:37 +00:00
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / >
2020-09-09 20:02:35 +00:00
< title > Map Resources and Topography — python-awips documentation< / title >
< link rel = "stylesheet" href = "../../_static/css/theme.css" type = "text/css" / >
< link rel = "stylesheet" href = "../../_static/pygments.css" type = "text/css" / >
2021-06-01 19:34:54 +00:00
< link rel = "stylesheet" href = "../../_static/pygments.css" type = "text/css" / >
< link rel = "stylesheet" href = "../../_static/css/theme.css" type = "text/css" / >
2020-09-09 20:02:35 +00:00
2021-03-23 16:15:37 +00:00
2020-09-09 20:02:35 +00:00
2021-03-23 16:15:37 +00:00
2020-09-09 20:02:35 +00:00
<!-- [if lt IE 9]>
< script src = "../../_static/js/html5shiv.min.js" > < / script >
<![endif]-->
< script type = "text/javascript" id = "documentation_options" data-url_root = "../../" src = "../../_static/documentation_options.js" > < / script >
2021-06-01 19:34:54 +00:00
< script data-url_root = "../../" id = "documentation_options" src = "../../_static/documentation_options.js" > < / script >
2020-09-09 20:02:35 +00:00
< script src = "../../_static/jquery.js" > < / script >
< script src = "../../_static/underscore.js" > < / script >
< script src = "../../_static/doctools.js" > < / script >
< script type = "text/javascript" src = "../../_static/js/theme.js" > < / script >
< link rel = "author" title = "About these documents" href = "../../about.html" / >
< link rel = "index" title = "Index" href = "../../genindex.html" / >
< link rel = "search" title = "Search" href = "../../search.html" / >
< link rel = "next" title = "Model Sounding Data" href = "Model_Sounding_Data.html" / >
< link rel = "prev" title = "METAR Station Plot with MetPy" href = "METAR_Station_Plot_with_MetPy.html" / >
< / head >
< body class = "wy-body-for-nav" >
< div class = "wy-grid-for-nav" >
< nav data-toggle = "wy-nav-shift" class = "wy-nav-side" >
< div class = "wy-side-scroll" >
< div class = "wy-side-nav-search" >
2021-03-23 16:15:37 +00:00
< a href = "../../index.html" class = "icon icon-home" > python-awips
2020-09-09 20:02:35 +00:00
< / a >
< div class = "version" >
18.1.7
< / div >
< div role = "search" >
< form id = "rtd-search-form" class = "wy-form" action = "../../search.html" method = "get" >
< input type = "text" name = "q" placeholder = "Search docs" / >
< input type = "hidden" name = "check_keywords" value = "yes" / >
< input type = "hidden" name = "area" value = "default" / >
< / form >
< / div >
< / div >
< div class = "wy-menu wy-menu-vertical" data-spy = "affix" role = "navigation" aria-label = "main navigation" >
< ul class = "current" >
< li class = "toctree-l1" > < a class = "reference internal" href = "../../api/index.html" > API Documentation< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../../datatypes.html" > Available Data Types< / a > < / li >
< li class = "toctree-l1 current" > < a class = "reference internal" href = "../index.html" > Data Plotting Examples< / a > < ul class = "current" >
< li class = "toctree-l2" > < a class = "reference internal" href = "Colored_Surface_Temperature_Plot.html" > Colored Surface Temperature Plot< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Forecast_Model_Vertical_Sounding.html" > Forecast Model Vertical Sounding< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "GOES_Geostationary_Lightning_Mapper.html" > GOES Geostationary Lightning Mapper< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Grid_Levels_and_Parameters.html" > Grid Levels and Parameters< / a > < / li >
2021-06-01 21:35:01 +00:00
< li class = "toctree-l2" > < a class = "reference internal" href = "Grids_and_Cartopy.html" > Grids and Cartopy< / a > < / li >
2020-09-09 20:02:35 +00:00
< li class = "toctree-l2" > < a class = "reference internal" href = "METAR_Station_Plot_with_MetPy.html" > METAR Station Plot with MetPy< / a > < / li >
< li class = "toctree-l2 current" > < a class = "current reference internal" href = "#" > Map Resources and Topography< / a > < ul >
< li class = "toctree-l3" > < a class = "reference internal" href = "#notes" > Notes< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#setup" > Setup< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#request-county-boundaries-for-a-wfo" > Request County Boundaries for a WFO< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#create-a-merged-cwa-with-cascaded-union" > Create a merged CWA with cascaded_union< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#wfo-boundary-spatial-filter-for-interstates" > WFO boundary spatial filter for interstates< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#nearby-cities" > Nearby cities< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#lakes" > Lakes< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#major-rivers" > Major Rivers< / a > < / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "#topography" > Topography< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Model_Sounding_Data.html" > Model Sounding Data< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "NEXRAD_Level3_Radar.html" > NEXRAD Level3 Radar< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Precip_Accumulation-Region_Of_Interest.html" > Precip Accumulation-Region Of Interest< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Regional_Surface_Obs_Plot.html" > Regional Surface Obs Plot< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Satellite_Imagery.html" > Satellite Imagery< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Upper_Air_BUFR_Soundings.html" > Upper Air BUFR Soundings< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "Watch_and_Warning_Polygons.html" > Watch and Warning Polygons< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../../dev.html" > Development Guide< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../../gridparms.html" > Grid Parameters< / a > < / li >
< li class = "toctree-l1" > < a class = "reference internal" href = "../../about.html" > About Unidata AWIPS< / a > < / li >
< / ul >
< / div >
< / div >
< / nav >
< section data-toggle = "wy-nav-shift" class = "wy-nav-content-wrap" >
< nav class = "wy-nav-top" aria-label = "top navigation" >
< i data-toggle = "wy-nav-top" class = "fa fa-bars" > < / i >
< a href = "../../index.html" > python-awips< / a >
< / nav >
< div class = "wy-nav-content" >
< div class = "rst-content" >
2021-03-23 16:15:37 +00:00
2020-09-09 20:02:35 +00:00
< div role = "navigation" aria-label = "breadcrumbs navigation" >
< ul class = "wy-breadcrumbs" >
< li > < a href = "../../index.html" class = "icon icon-home" > < / a > » < / li >
< li > < a href = "../index.html" > Data Plotting Examples< / a > » < / li >
< li > Map Resources and Topography< / li >
< li class = "wy-breadcrumbs-aside" >
2021-03-23 16:15:37 +00:00
2020-09-09 20:02:35 +00:00
< a href = "../../_sources/examples/generated/Map_Resources_and_Topography.rst.txt" rel = "nofollow" > View page source< / a >
< / li >
< / ul >
< hr / >
< / div >
< div role = "main" class = "document" itemscope = "itemscope" itemtype = "http://schema.org/Article" >
< div itemprop = "articleBody" >
< div class = "section" id = "map-resources-and-topography" >
< h1 > Map Resources and Topography< a class = "headerlink" href = "#map-resources-and-topography" title = "Permalink to this headline" > ¶< / a > < / h1 >
< p > < a class = "reference external" href = "http://nbviewer.ipython.org/github/Unidata/python-awips/blob/master/examples/notebooks/Map_Resources_and_Topography.ipynb" > Notebook< / a >
The python-awips package provides access to the entire AWIPS Maps
Database for use in Python GIS applications. Map objects are returned as
Shapely geometries (< em > Polygon< / em > , < em > Point< / em > , < em > MultiLineString< / em > , etc.) and can
be easily plotted by Matplotlib, Cartopy, MetPy, and other packages.< / p >
< p > Each map database table has a geometry field called < code class = "docutils literal notranslate" > < span class = "pre" > the_geom< / span > < / code > , which
can be used to spatially select map resources for any column of type
geometry,< / p >
< div class = "section" id = "notes" >
< h2 > Notes< a class = "headerlink" href = "#notes" title = "Permalink to this headline" > ¶< / a > < / h2 >
< ul >
< li > < p > This notebook requires: < strong > python-awips, numpy, matplotplib, cartopy,
shapely< / strong > < / p > < / li >
< li > < p > Use datatype < strong > maps< / strong > and < strong > addIdentifier(‘ table’ , < postgres maps
schema> )< / strong > to define the map table:
DataAccessLayer.changeEDEXHost(“edex-cloud.unidata.ucar.edu”) request
= DataAccessLayer.newDataRequest(‘ maps’ )
request.addIdentifier(‘ table’ , ‘ mapdata.county’ )< / p > < / li >
< li > < p > Use < strong > request.setLocationNames()< / strong > and < strong > request.addIdentifier()< / strong > to
spatially filter a map resource. In the example below, WFO ID < strong > BOU< / strong >
(Boulder, Colorado) is used to query counties within the BOU county
watch area (CWA)< / p >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' geomField' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' the_geom' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' inLocation' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' true' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' locationField' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' cwa' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > setLocationNames< / span > < span class = "p" > (< / span > < span class = "s1" > ' BOU' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' cwa' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' BOU' < / span > < span class = "p" > )< / span >
< / pre > < / div >
< / div >
< / li >
< / ul >
< p > See the Maps Database Reference Page for available database tables,
column names, and types.< / p >
< blockquote >
< div > < p > Note the geometry definition of < code class = "docutils literal notranslate" > < span class = "pre" > the_geom< / span > < / code > for each data type,
which can be < strong > Point< / strong > , < strong > MultiPolygon< / strong > , or < strong > MultiLineString< / strong > .< / p >
< / div > < / blockquote >
< / div >
< div class = "section" id = "setup" >
< h2 > Setup< a class = "headerlink" href = "#setup" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "kn" > from< / span > < span class = "nn" > __future__< / span > < span class = "kn" > import< / span > < span class = "n" > print_function< / span >
< span class = "kn" > from< / span > < span class = "nn" > awips.dataaccess< / span > < span class = "kn" > import< / span > < span class = "n" > DataAccessLayer< / span >
< span class = "kn" > import< / span > < span class = "nn" > matplotlib.pyplot< / span > < span class = "k" > as< / span > < span class = "nn" > plt< / span >
< span class = "kn" > import< / span > < span class = "nn" > cartopy.crs< / span > < span class = "k" > as< / span > < span class = "nn" > ccrs< / span >
< span class = "kn" > import< / span > < span class = "nn" > numpy< / span > < span class = "k" > as< / span > < span class = "nn" > np< / span >
< span class = "kn" > from< / span > < span class = "nn" > cartopy.mpl.gridliner< / span > < span class = "kn" > import< / span > < span class = "n" > LONGITUDE_FORMATTER< / span > < span class = "p" > ,< / span > < span class = "n" > LATITUDE_FORMATTER< / span >
< span class = "kn" > from< / span > < span class = "nn" > cartopy.feature< / span > < span class = "kn" > import< / span > < span class = "n" > ShapelyFeature< / span > < span class = "p" > ,< / span > < span class = "n" > NaturalEarthFeature< / span >
< span class = "kn" > from< / span > < span class = "nn" > shapely.geometry< / span > < span class = "kn" > import< / span > < span class = "n" > Polygon< / span >
< span class = "kn" > from< / span > < span class = "nn" > shapely.ops< / span > < span class = "kn" > import< / span > < span class = "n" > cascaded_union< / span >
< span class = "c1" > # Standard map plot< / span >
< span class = "k" > def< / span > < span class = "nf" > make_map< / span > < span class = "p" > (< / span > < span class = "n" > bbox< / span > < span class = "p" > ,< / span > < span class = "n" > projection< / span > < span class = "o" > =< / span > < span class = "n" > ccrs< / span > < span class = "o" > .< / span > < span class = "n" > PlateCarree< / span > < span class = "p" > ()):< / span >
< span class = "n" > fig< / span > < span class = "p" > ,< / span > < span class = "n" > ax< / span > < span class = "o" > =< / span > < span class = "n" > plt< / span > < span class = "o" > .< / span > < span class = "n" > subplots< / span > < span class = "p" > (< / span > < span class = "n" > figsize< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "mi" > 12< / span > < span class = "p" > ,< / span > < span class = "mi" > 12< / span > < span class = "p" > ),< / span >
< span class = "n" > subplot_kw< / span > < span class = "o" > =< / span > < span class = "nb" > dict< / span > < span class = "p" > (< / span > < span class = "n" > projection< / span > < span class = "o" > =< / span > < span class = "n" > projection< / span > < span class = "p" > ))< / span >
< span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > set_extent< / span > < span class = "p" > (< / span > < span class = "n" > bbox< / span > < span class = "p" > )< / span >
< span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > coastlines< / span > < span class = "p" > (< / span > < span class = "n" > resolution< / span > < span class = "o" > =< / span > < span class = "s1" > ' 50m' < / span > < span class = "p" > )< / span >
< span class = "n" > gl< / span > < span class = "o" > =< / span > < span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > gridlines< / span > < span class = "p" > (< / span > < span class = "n" > draw_labels< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span > < span class = "p" > )< / span >
< span class = "n" > gl< / span > < span class = "o" > .< / span > < span class = "n" > top_labels< / span > < span class = "o" > =< / span > < span class = "n" > gl< / span > < span class = "o" > .< / span > < span class = "n" > right_labels< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > gl< / span > < span class = "o" > .< / span > < span class = "n" > xformatter< / span > < span class = "o" > =< / span > < span class = "n" > LONGITUDE_FORMATTER< / span >
< span class = "n" > gl< / span > < span class = "o" > .< / span > < span class = "n" > yformatter< / span > < span class = "o" > =< / span > < span class = "n" > LATITUDE_FORMATTER< / span >
< span class = "k" > return< / span > < span class = "n" > fig< / span > < span class = "p" > ,< / span > < span class = "n" > ax< / span >
< span class = "c1" > # Server, Data Request Type, and Database Table< / span >
< span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > changeEDEXHost< / span > < span class = "p" > (< / span > < span class = "s2" > " edex-cloud.unidata.ucar.edu" < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > newDataRequest< / span > < span class = "p" > (< / span > < span class = "s1" > ' maps' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' table' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' mapdata.county' < / span > < span class = "p" > )< / span >
< / pre > < / div >
< / div >
< / div >
< div class = "section" id = "request-county-boundaries-for-a-wfo" >
< h2 > Request County Boundaries for a WFO< a class = "headerlink" href = "#request-county-boundaries-for-a-wfo" title = "Permalink to this headline" > ¶< / a > < / h2 >
< ul class = "simple" >
< li > < p > Use < strong > request.setParameters()< / strong > to define fields to be returned by
the request.< / p > < / li >
< / ul >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "c1" > # Define a WFO ID for location< / span >
< span class = "c1" > # tie this ID to the mapdata.county column " cwa" for filtering< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > setLocationNames< / span > < span class = "p" > (< / span > < span class = "s1" > ' BOU' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' cwa' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' BOU' < / span > < span class = "p" > )< / span >
< span class = "c1" > # enable location filtering (inLocation)< / span >
< span class = "c1" > # locationField is tied to the above cwa definition (BOU)< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' geomField' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' the_geom' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' inLocation' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' true' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' locationField' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' cwa' < / span > < span class = "p" > )< / span >
< span class = "c1" > # This is essentially the same as " ' " select count(*) from mapdata.cwa where cwa=' BOU' ;" (=1)< / span >
< span class = "c1" > # Get response and create dict of county geometries< / span >
< span class = "n" > response< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getGeometryData< / span > < span class = "p" > (< / span > < span class = "n" > request< / span > < span class = "p" > ,< / span > < span class = "p" > [])< / span >
< span class = "n" > counties< / span > < span class = "o" > =< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > array< / span > < span class = "p" > ([])< / span >
< span class = "k" > for< / span > < span class = "n" > ob< / span > < span class = "ow" > in< / span > < span class = "n" > response< / span > < span class = "p" > :< / span >
< span class = "n" > counties< / span > < span class = "o" > =< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > counties< / span > < span class = "p" > ,< / span > < span class = "n" > ob< / span > < span class = "o" > .< / span > < span class = "n" > getGeometry< / span > < span class = "p" > ())< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Using " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > counties< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " county MultiPolygons" < / span > < span class = "p" > )< / span >
< span class = "o" > %< / span > < span class = "k" > matplotlib< / span > inline
< span class = "c1" > # All WFO counties merged to a single Polygon< / span >
< span class = "n" > merged_counties< / span > < span class = "o" > =< / span > < span class = "n" > cascaded_union< / span > < span class = "p" > (< / span > < span class = "n" > counties< / span > < span class = "p" > )< / span >
< span class = "n" > envelope< / span > < span class = "o" > =< / span > < span class = "n" > merged_counties< / span > < span class = "o" > .< / span > < span class = "n" > buffer< / span > < span class = "p" > (< / span > < span class = "mi" > 2< / span > < span class = "p" > )< / span >
< span class = "n" > boundaries< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "n" > merged_counties< / span > < span class = "p" > ]< / span >
< span class = "c1" > # Get bounds of this merged Polygon to use as buffered map extent< / span >
< span class = "n" > bounds< / span > < span class = "o" > =< / span > < span class = "n" > merged_counties< / span > < span class = "o" > .< / span > < span class = "n" > bounds< / span >
< span class = "n" > bbox< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "n" > bounds< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "n" > bounds< / span > < span class = "p" > [< / span > < span class = "mi" > 2< / span > < span class = "p" > ]< / span > < span class = "o" > +< / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span > < span class = "n" > bounds< / span > < span class = "p" > [< / span > < span class = "mi" > 1< / span > < span class = "p" > ]< / span > < span class = "o" > -< / span > < span class = "mf" > 1.5< / span > < span class = "p" > ,< / span > < span class = "n" > bounds< / span > < span class = "p" > [< / span > < span class = "mi" > 3< / span > < span class = "p" > ]< / span > < span class = "o" > +< / span > < span class = "mf" > 1.5< / span > < span class = "p" > ]< / span >
< span class = "n" > fig< / span > < span class = "p" > ,< / span > < span class = "n" > ax< / span > < span class = "o" > =< / span > < span class = "n" > make_map< / span > < span class = "p" > (< / span > < span class = "n" > bbox< / span > < span class = "o" > =< / span > < span class = "n" > bbox< / span > < span class = "p" > )< / span >
< span class = "c1" > # Plot political/state boundaries handled by Cartopy< / span >
< span class = "n" > political_boundaries< / span > < span class = "o" > =< / span > < span class = "n" > NaturalEarthFeature< / span > < span class = "p" > (< / span > < span class = "n" > category< / span > < span class = "o" > =< / span > < span class = "s1" > ' cultural' < / span > < span class = "p" > ,< / span >
< span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "s1" > ' admin_0_boundary_lines_land' < / span > < span class = "p" > ,< / span >
< span class = "n" > scale< / span > < span class = "o" > =< / span > < span class = "s1" > ' 50m' < / span > < span class = "p" > ,< / span > < span class = "n" > facecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' none' < / span > < span class = "p" > )< / span >
< span class = "n" > states< / span > < span class = "o" > =< / span > < span class = "n" > NaturalEarthFeature< / span > < span class = "p" > (< / span > < span class = "n" > category< / span > < span class = "o" > =< / span > < span class = "s1" > ' cultural' < / span > < span class = "p" > ,< / span >
< span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "s1" > ' admin_1_states_provinces_lines' < / span > < span class = "p" > ,< / span >
< span class = "n" > scale< / span > < span class = "o" > =< / span > < span class = "s1" > ' 50m' < / span > < span class = "p" > ,< / span > < span class = "n" > facecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' none' < / span > < span class = "p" > )< / span >
< span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > add_feature< / span > < span class = "p" > (< / span > < span class = "n" > political_boundaries< / span > < span class = "p" > ,< / span > < span class = "n" > linestyle< / span > < span class = "o" > =< / span > < span class = "s1" > ' -' < / span > < span class = "p" > ,< / span > < span class = "n" > edgecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' black' < / span > < span class = "p" > )< / span >
< span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > add_feature< / span > < span class = "p" > (< / span > < span class = "n" > states< / span > < span class = "p" > ,< / span > < span class = "n" > linestyle< / span > < span class = "o" > =< / span > < span class = "s1" > ' -' < / span > < span class = "p" > ,< / span > < span class = "n" > edgecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' black' < / span > < span class = "p" > ,< / span > < span class = "n" > linewidth< / span > < span class = "o" > =< / span > < span class = "mi" > 2< / span > < span class = "p" > )< / span >
< span class = "c1" > # Plot CWA counties< / span >
< span class = "k" > for< / span > < span class = "n" > i< / span > < span class = "p" > ,< / span > < span class = "n" > geom< / span > < span class = "ow" > in< / span > < span class = "nb" > enumerate< / span > < span class = "p" > (< / span > < span class = "n" > counties< / span > < span class = "p" > ):< / span >
< span class = "n" > cbounds< / span > < span class = "o" > =< / span > < span class = "n" > Polygon< / span > < span class = "p" > (< / span > < span class = "n" > geom< / span > < span class = "p" > )< / span >
< span class = "n" > intersection< / span > < span class = "o" > =< / span > < span class = "n" > cbounds< / span > < span class = "o" > .< / span > < span class = "n" > intersection< / span >
< span class = "n" > geoms< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > intersection< / span > < span class = "p" > (< / span > < span class = "n" > geom< / span > < span class = "p" > )< / span >
< span class = "k" > for< / span > < span class = "n" > geom< / span > < span class = "ow" > in< / span > < span class = "n" > counties< / span >
< span class = "k" > if< / span > < span class = "n" > cbounds< / span > < span class = "o" > .< / span > < span class = "n" > intersects< / span > < span class = "p" > (< / span > < span class = "n" > geom< / span > < span class = "p" > ))< / span >
< span class = "n" > shape_feature< / span > < span class = "o" > =< / span > < span class = "n" > ShapelyFeature< / span > < span class = "p" > (< / span > < span class = "n" > geoms< / span > < span class = "p" > ,< / span > < span class = "n" > ccrs< / span > < span class = "o" > .< / span > < span class = "n" > PlateCarree< / span > < span class = "p" > (),< / span >
< span class = "n" > facecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' none' < / span > < span class = "p" > ,< / span > < span class = "n" > linestyle< / span > < span class = "o" > =< / span > < span class = "s2" > " -" < / span > < span class = "p" > ,< / span > < span class = "n" > edgecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' #86989B' < / span > < span class = "p" > )< / span >
< span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > add_feature< / span > < span class = "p" > (< / span > < span class = "n" > shape_feature< / span > < span class = "p" > )< / span >
< / pre > < / div >
< / div >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > Using< / span > < span class = "mi" > 23< / span > < span class = "n" > county< / span > < span class = "n" > MultiPolygons< / span >
< / pre > < / div >
< / div >
< img alt = "../../_images/Map_Resources_and_Topography_4_1.png" src = "../../_images/Map_Resources_and_Topography_4_1.png" / >
< / div >
< div class = "section" id = "create-a-merged-cwa-with-cascaded-union" >
< h2 > Create a merged CWA with cascaded_union< a class = "headerlink" href = "#create-a-merged-cwa-with-cascaded-union" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "c1" > # Plot CWA envelope< / span >
< span class = "k" > for< / span > < span class = "n" > i< / span > < span class = "p" > ,< / span > < span class = "n" > geom< / span > < span class = "ow" > in< / span > < span class = "nb" > enumerate< / span > < span class = "p" > (< / span > < span class = "n" > boundaries< / span > < span class = "p" > ):< / span >
< span class = "n" > gbounds< / span > < span class = "o" > =< / span > < span class = "n" > Polygon< / span > < span class = "p" > (< / span > < span class = "n" > geom< / span > < span class = "p" > )< / span >
< span class = "n" > intersection< / span > < span class = "o" > =< / span > < span class = "n" > gbounds< / span > < span class = "o" > .< / span > < span class = "n" > intersection< / span >
< span class = "n" > geoms< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > intersection< / span > < span class = "p" > (< / span > < span class = "n" > geom< / span > < span class = "p" > )< / span >
< span class = "k" > for< / span > < span class = "n" > geom< / span > < span class = "ow" > in< / span > < span class = "n" > boundaries< / span >
< span class = "k" > if< / span > < span class = "n" > gbounds< / span > < span class = "o" > .< / span > < span class = "n" > intersects< / span > < span class = "p" > (< / span > < span class = "n" > geom< / span > < span class = "p" > ))< / span >
< span class = "n" > shape_feature< / span > < span class = "o" > =< / span > < span class = "n" > ShapelyFeature< / span > < span class = "p" > (< / span > < span class = "n" > geoms< / span > < span class = "p" > ,< / span > < span class = "n" > ccrs< / span > < span class = "o" > .< / span > < span class = "n" > PlateCarree< / span > < span class = "p" > (),< / span >
< span class = "n" > facecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' none' < / span > < span class = "p" > ,< / span > < span class = "n" > linestyle< / span > < span class = "o" > =< / span > < span class = "s2" > " -" < / span > < span class = "p" > ,< / span > < span class = "n" > linewidth< / span > < span class = "o" > =< / span > < span class = "mf" > 3.< / span > < span class = "p" > ,< / span > < span class = "n" > edgecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' #cc5000' < / span > < span class = "p" > )< / span >
< span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > add_feature< / span > < span class = "p" > (< / span > < span class = "n" > shape_feature< / span > < span class = "p" > )< / span >
< span class = "n" > fig< / span >
< / pre > < / div >
< / div >
< img alt = "../../_images/Map_Resources_and_Topography_6_0.png" src = "../../_images/Map_Resources_and_Topography_6_0.png" / >
< / div >
< div class = "section" id = "wfo-boundary-spatial-filter-for-interstates" >
< h2 > WFO boundary spatial filter for interstates< a class = "headerlink" href = "#wfo-boundary-spatial-filter-for-interstates" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > Using the previously-defined < strong > envelope=merged_counties.buffer(2)< / strong > in
< strong > newDataRequest()< / strong > to request geometries which fall inside the
buffered boundary.< / p >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > request< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > newDataRequest< / span > < span class = "p" > (< / span > < span class = "s1" > ' maps' < / span > < span class = "p" > ,< / span > < span class = "n" > envelope< / span > < span class = "o" > =< / span > < span class = "n" > envelope< / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' table' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' mapdata.interstate' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' geomField' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' the_geom' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > setParameters< / span > < span class = "p" > (< / span > < span class = "s1" > ' name' < / span > < span class = "p" > )< / span >
< span class = "n" > interstates< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getGeometryData< / span > < span class = "p" > (< / span > < span class = "n" > request< / span > < span class = "p" > ,< / span > < span class = "p" > [])< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Using " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > interstates< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " interstate MultiLineStrings" < / span > < span class = "p" > )< / span >
< span class = "c1" > # Plot interstates< / span >
< span class = "k" > for< / span > < span class = "n" > ob< / span > < span class = "ow" > in< / span > < span class = "n" > interstates< / span > < span class = "p" > :< / span >
< span class = "n" > shape_feature< / span > < span class = "o" > =< / span > < span class = "n" > ShapelyFeature< / span > < span class = "p" > (< / span > < span class = "n" > ob< / span > < span class = "o" > .< / span > < span class = "n" > getGeometry< / span > < span class = "p" > (),< / span > < span class = "n" > ccrs< / span > < span class = "o" > .< / span > < span class = "n" > PlateCarree< / span > < span class = "p" > (),< / span >
< span class = "n" > facecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' none' < / span > < span class = "p" > ,< / span > < span class = "n" > linestyle< / span > < span class = "o" > =< / span > < span class = "s2" > " -" < / span > < span class = "p" > ,< / span > < span class = "n" > edgecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' orange' < / span > < span class = "p" > )< / span >
< span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > add_feature< / span > < span class = "p" > (< / span > < span class = "n" > shape_feature< / span > < span class = "p" > )< / span >
< span class = "n" > fig< / span >
< / pre > < / div >
< / div >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > Using< / span > < span class = "mi" > 225< / span > < span class = "n" > interstate< / span > < span class = "n" > MultiLineStrings< / span >
< / pre > < / div >
< / div >
< img alt = "../../_images/Map_Resources_and_Topography_8_1.png" src = "../../_images/Map_Resources_and_Topography_8_1.png" / >
< / div >
< div class = "section" id = "nearby-cities" >
< h2 > Nearby cities< a class = "headerlink" href = "#nearby-cities" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > Request the city table and filter by population and progressive
disclosure level:< / p >
< p > < strong > Warning< / strong > : the < code class = "docutils literal notranslate" > < span class = "pre" > prog_disc< / span > < / code > field is not entirely understood and
values appear to change significantly depending on WFO site.< / p >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > request< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > newDataRequest< / span > < span class = "p" > (< / span > < span class = "s1" > ' maps' < / span > < span class = "p" > ,< / span > < span class = "n" > envelope< / span > < span class = "o" > =< / span > < span class = "n" > envelope< / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' table' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' mapdata.city' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' geomField' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' the_geom' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > setParameters< / span > < span class = "p" > (< / span > < span class = "s1" > ' name' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' population' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' prog_disc' < / span > < span class = "p" > )< / span >
< span class = "n" > cities< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getGeometryData< / span > < span class = "p" > (< / span > < span class = "n" > request< / span > < span class = "p" > ,< / span > < span class = "p" > [])< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Queried " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > cities< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " total cities" < / span > < span class = "p" > )< / span >
< span class = "n" > citylist< / span > < span class = "o" > =< / span > < span class = "p" > []< / span >
< span class = "n" > cityname< / span > < span class = "o" > =< / span > < span class = "p" > []< / span >
< span class = "c1" > # For BOU, progressive disclosure values above 50 and pop above 5000 looks good< / span >
< span class = "k" > for< / span > < span class = "n" > ob< / span > < span class = "ow" > in< / span > < span class = "n" > cities< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > ob< / span > < span class = "o" > .< / span > < span class = "n" > getString< / span > < span class = "p" > (< / span > < span class = "s2" > " population" < / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > ob< / span > < span class = "o" > .< / span > < span class = "n" > getNumber< / span > < span class = "p" > (< / span > < span class = "s2" > " prog_disc" < / span > < span class = "p" > )< / span > < span class = "o" > > < / span > < span class = "mi" > 50< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "nb" > int< / span > < span class = "p" > (< / span > < span class = "n" > ob< / span > < span class = "o" > .< / span > < span class = "n" > getString< / span > < span class = "p" > (< / span > < span class = "s2" > " population" < / span > < span class = "p" > ))< / span > < span class = "o" > > < / span > < span class = "mi" > 5000< / span > < span class = "p" > :< / span >
< span class = "n" > citylist< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > ob< / span > < span class = "o" > .< / span > < span class = "n" > getGeometry< / span > < span class = "p" > ())< / span >
< span class = "n" > cityname< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > ob< / span > < span class = "o" > .< / span > < span class = "n" > getString< / span > < span class = "p" > (< / span > < span class = "s2" > " name" < / span > < span class = "p" > ))< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Plotting " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > cityname< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " cities" < / span > < span class = "p" > )< / span >
< span class = "c1" > # Plot city markers< / span >
< span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > scatter< / span > < span class = "p" > ([< / span > < span class = "n" > point< / span > < span class = "o" > .< / span > < span class = "n" > x< / span > < span class = "k" > for< / span > < span class = "n" > point< / span > < span class = "ow" > in< / span > < span class = "n" > citylist< / span > < span class = "p" > ],< / span >
< span class = "p" > [< / span > < span class = "n" > point< / span > < span class = "o" > .< / span > < span class = "n" > y< / span > < span class = "k" > for< / span > < span class = "n" > point< / span > < span class = "ow" > in< / span > < span class = "n" > citylist< / span > < span class = "p" > ],< / span >
< span class = "n" > transform< / span > < span class = "o" > =< / span > < span class = "n" > ccrs< / span > < span class = "o" > .< / span > < span class = "n" > PlateCarree< / span > < span class = "p" > (),< / span > < span class = "n" > marker< / span > < span class = "o" > =< / span > < span class = "s2" > " +" < / span > < span class = "p" > ,< / span > < span class = "n" > facecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' black' < / span > < span class = "p" > )< / span >
< span class = "c1" > # Plot city names< / span >
< span class = "k" > for< / span > < span class = "n" > i< / span > < span class = "p" > ,< / span > < span class = "n" > txt< / span > < span class = "ow" > in< / span > < span class = "nb" > enumerate< / span > < span class = "p" > (< / span > < span class = "n" > cityname< / span > < span class = "p" > ):< / span >
< span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > annotate< / span > < span class = "p" > (< / span > < span class = "n" > txt< / span > < span class = "p" > ,< / span > < span class = "p" > (< / span > < span class = "n" > citylist< / span > < span class = "p" > [< / span > < span class = "n" > i< / span > < span class = "p" > ]< / span > < span class = "o" > .< / span > < span class = "n" > x< / span > < span class = "p" > ,< / span > < span class = "n" > citylist< / span > < span class = "p" > [< / span > < span class = "n" > i< / span > < span class = "p" > ]< / span > < span class = "o" > .< / span > < span class = "n" > y< / span > < span class = "p" > ),< / span >
< span class = "n" > xytext< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "mi" > 3< / span > < span class = "p" > ,< / span > < span class = "mi" > 3< / span > < span class = "p" > ),< / span > < span class = "n" > textcoords< / span > < span class = "o" > =< / span > < span class = "s2" > " offset points" < / span > < span class = "p" > )< / span >
< span class = "n" > fig< / span >
< / pre > < / div >
< / div >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > Queried< / span > < span class = "mi" > 1203< / span > < span class = "n" > total< / span > < span class = "n" > cities< / span >
< span class = "n" > Plotting< / span > < span class = "mi" > 57< / span > < span class = "n" > cities< / span >
< / pre > < / div >
< / div >
< img alt = "../../_images/Map_Resources_and_Topography_10_1.png" src = "../../_images/Map_Resources_and_Topography_10_1.png" / >
< / div >
< div class = "section" id = "lakes" >
< h2 > Lakes< a class = "headerlink" href = "#lakes" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > request< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > newDataRequest< / span > < span class = "p" > (< / span > < span class = "s1" > ' maps' < / span > < span class = "p" > ,< / span > < span class = "n" > envelope< / span > < span class = "o" > =< / span > < span class = "n" > envelope< / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' table' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' mapdata.lake' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' geomField' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' the_geom' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > setParameters< / span > < span class = "p" > (< / span > < span class = "s1" > ' name' < / span > < span class = "p" > )< / span >
< span class = "c1" > # Get lake geometries< / span >
< span class = "n" > response< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getGeometryData< / span > < span class = "p" > (< / span > < span class = "n" > request< / span > < span class = "p" > ,< / span > < span class = "p" > [])< / span >
< span class = "n" > lakes< / span > < span class = "o" > =< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > array< / span > < span class = "p" > ([])< / span >
< span class = "k" > for< / span > < span class = "n" > ob< / span > < span class = "ow" > in< / span > < span class = "n" > response< / span > < span class = "p" > :< / span >
< span class = "n" > lakes< / span > < span class = "o" > =< / span > < span class = "n" > np< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > lakes< / span > < span class = "p" > ,< / span > < span class = "n" > ob< / span > < span class = "o" > .< / span > < span class = "n" > getGeometry< / span > < span class = "p" > ())< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Using " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > lakes< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " lake MultiPolygons" < / span > < span class = "p" > )< / span >
< span class = "c1" > # Plot lakes< / span >
< span class = "k" > for< / span > < span class = "n" > i< / span > < span class = "p" > ,< / span > < span class = "n" > geom< / span > < span class = "ow" > in< / span > < span class = "nb" > enumerate< / span > < span class = "p" > (< / span > < span class = "n" > lakes< / span > < span class = "p" > ):< / span >
< span class = "n" > cbounds< / span > < span class = "o" > =< / span > < span class = "n" > Polygon< / span > < span class = "p" > (< / span > < span class = "n" > geom< / span > < span class = "p" > )< / span >
< span class = "n" > intersection< / span > < span class = "o" > =< / span > < span class = "n" > cbounds< / span > < span class = "o" > .< / span > < span class = "n" > intersection< / span >
< span class = "n" > geoms< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > intersection< / span > < span class = "p" > (< / span > < span class = "n" > geom< / span > < span class = "p" > )< / span >
< span class = "k" > for< / span > < span class = "n" > geom< / span > < span class = "ow" > in< / span > < span class = "n" > lakes< / span >
< span class = "k" > if< / span > < span class = "n" > cbounds< / span > < span class = "o" > .< / span > < span class = "n" > intersects< / span > < span class = "p" > (< / span > < span class = "n" > geom< / span > < span class = "p" > ))< / span >
< span class = "n" > shape_feature< / span > < span class = "o" > =< / span > < span class = "n" > ShapelyFeature< / span > < span class = "p" > (< / span > < span class = "n" > geoms< / span > < span class = "p" > ,< / span > < span class = "n" > ccrs< / span > < span class = "o" > .< / span > < span class = "n" > PlateCarree< / span > < span class = "p" > (),< / span >
< span class = "n" > facecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' blue' < / span > < span class = "p" > ,< / span > < span class = "n" > linestyle< / span > < span class = "o" > =< / span > < span class = "s2" > " -" < / span > < span class = "p" > ,< / span > < span class = "n" > edgecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' #20B2AA' < / span > < span class = "p" > )< / span >
< span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > add_feature< / span > < span class = "p" > (< / span > < span class = "n" > shape_feature< / span > < span class = "p" > )< / span >
< span class = "n" > fig< / span >
< / pre > < / div >
< / div >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > Using< / span > < span class = "mi" > 208< / span > < span class = "n" > lake< / span > < span class = "n" > MultiPolygons< / span >
< / pre > < / div >
< / div >
< img alt = "../../_images/Map_Resources_and_Topography_12_1.png" src = "../../_images/Map_Resources_and_Topography_12_1.png" / >
< / div >
< div class = "section" id = "major-rivers" >
< h2 > Major Rivers< a class = "headerlink" href = "#major-rivers" title = "Permalink to this headline" > ¶< / a > < / h2 >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > request< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > newDataRequest< / span > < span class = "p" > (< / span > < span class = "s1" > ' maps' < / span > < span class = "p" > ,< / span > < span class = "n" > envelope< / span > < span class = "o" > =< / span > < span class = "n" > envelope< / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' table' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' mapdata.majorrivers' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s1" > ' geomField' < / span > < span class = "p" > ,< / span > < span class = "s1" > ' the_geom' < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > setParameters< / span > < span class = "p" > (< / span > < span class = "s1" > ' pname' < / span > < span class = "p" > )< / span >
< span class = "n" > rivers< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getGeometryData< / span > < span class = "p" > (< / span > < span class = "n" > request< / span > < span class = "p" > ,< / span > < span class = "p" > [])< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Using " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > rivers< / span > < span class = "p" > ))< / span > < span class = "o" > +< / span > < span class = "s2" > " river MultiLineStrings" < / span > < span class = "p" > )< / span >
< span class = "c1" > # Plot rivers< / span >
< span class = "k" > for< / span > < span class = "n" > ob< / span > < span class = "ow" > in< / span > < span class = "n" > rivers< / span > < span class = "p" > :< / span >
< span class = "n" > shape_feature< / span > < span class = "o" > =< / span > < span class = "n" > ShapelyFeature< / span > < span class = "p" > (< / span > < span class = "n" > ob< / span > < span class = "o" > .< / span > < span class = "n" > getGeometry< / span > < span class = "p" > (),< / span > < span class = "n" > ccrs< / span > < span class = "o" > .< / span > < span class = "n" > PlateCarree< / span > < span class = "p" > (),< / span >
< span class = "n" > facecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' none' < / span > < span class = "p" > ,< / span > < span class = "n" > linestyle< / span > < span class = "o" > =< / span > < span class = "s2" > " :" < / span > < span class = "p" > ,< / span > < span class = "n" > edgecolor< / span > < span class = "o" > =< / span > < span class = "s1" > ' #20B2AA' < / span > < span class = "p" > )< / span >
< span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > add_feature< / span > < span class = "p" > (< / span > < span class = "n" > shape_feature< / span > < span class = "p" > )< / span >
< span class = "n" > fig< / span >
< / pre > < / div >
< / div >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > Using< / span > < span class = "mi" > 1400< / span > < span class = "n" > river< / span > < span class = "n" > MultiLineStrings< / span >
< / pre > < / div >
< / div >
< img alt = "../../_images/Map_Resources_and_Topography_14_1.png" src = "../../_images/Map_Resources_and_Topography_14_1.png" / >
< / div >
< div class = "section" id = "topography" >
< h2 > Topography< a class = "headerlink" href = "#topography" title = "Permalink to this headline" > ¶< / a > < / h2 >
< p > Spatial envelopes are required for topo requests, which can become slow
to download and render for large (CONUS) maps.< / p >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "kn" > import< / span > < span class = "nn" > numpy.ma< / span > < span class = "k" > as< / span > < span class = "nn" > ma< / span >
< span class = "n" > request< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > newDataRequest< / span > < span class = "p" > (< / span > < span class = "s2" > " topo" < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s2" > " group" < / span > < span class = "p" > ,< / span > < span class = "s2" > " /" < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > addIdentifier< / span > < span class = "p" > (< / span > < span class = "s2" > " dataset" < / span > < span class = "p" > ,< / span > < span class = "s2" > " full" < / span > < span class = "p" > )< / span >
< span class = "n" > request< / span > < span class = "o" > .< / span > < span class = "n" > setEnvelope< / span > < span class = "p" > (< / span > < span class = "n" > envelope< / span > < span class = "p" > )< / span >
< span class = "n" > gridData< / span > < span class = "o" > =< / span > < span class = "n" > DataAccessLayer< / span > < span class = "o" > .< / span > < span class = "n" > getGridData< / span > < span class = "p" > (< / span > < span class = "n" > request< / span > < span class = "p" > )< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "n" > gridData< / span > < span class = "p" > )< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Number of grid records: " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > gridData< / span > < span class = "p" > )))< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Sample grid data shape:< / span > < span class = "se" > \n< / span > < span class = "s2" > " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > gridData< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]< / span > < span class = "o" > .< / span > < span class = "n" > getRawData< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > shape< / span > < span class = "p" > )< / span > < span class = "o" > +< / span > < span class = "s2" > " < / span > < span class = "se" > \n< / span > < span class = "s2" > " < / span > < span class = "p" > )< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "s2" > " Sample grid data:< / span > < span class = "se" > \n< / span > < span class = "s2" > " < / span > < span class = "o" > +< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > gridData< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]< / span > < span class = "o" > .< / span > < span class = "n" > getRawData< / span > < span class = "p" > ())< / span > < span class = "o" > +< / span > < span class = "s2" > " < / span > < span class = "se" > \n< / span > < span class = "s2" > " < / span > < span class = "p" > )< / span >
< / pre > < / div >
< / div >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "p" > [< / span > < span class = "o" > < < / span > < span class = "n" > awips< / span > < span class = "o" > .< / span > < span class = "n" > dataaccess< / span > < span class = "o" > .< / span > < span class = "n" > PyGridData< / span > < span class = "o" > .< / span > < span class = "n" > PyGridData< / span > < span class = "nb" > object< / span > < span class = "n" > at< / span > < span class = "mh" > 0x7ffd0f33c040< / span > < span class = "o" > > < / span > < span class = "p" > ]< / span >
< span class = "n" > Number< / span > < span class = "n" > of< / span > < span class = "n" > grid< / span > < span class = "n" > records< / span > < span class = "p" > :< / span > < span class = "mi" > 1< / span >
< span class = "n" > Sample< / span > < span class = "n" > grid< / span > < span class = "n" > data< / span > < span class = "n" > shape< / span > < span class = "p" > :< / span >
< span class = "p" > (< / span > < span class = "mi" > 778< / span > < span class = "p" > ,< / span > < span class = "mi" > 1058< / span > < span class = "p" > )< / span >
< span class = "n" > Sample< / span > < span class = "n" > grid< / span > < span class = "n" > data< / span > < span class = "p" > :< / span >
< span class = "p" > [[< / span > < span class = "mf" > 1694.< / span > < span class = "mf" > 1693.< / span > < span class = "mf" > 1688.< / span > < span class = "o" > ...< / span > < span class = "mf" > 757.< / span > < span class = "mf" > 761.< / span > < span class = "mf" > 762.< / span > < span class = "p" > ]< / span >
< span class = "p" > [< / span > < span class = "mf" > 1701.< / span > < span class = "mf" > 1701.< / span > < span class = "mf" > 1701.< / span > < span class = "o" > ...< / span > < span class = "mf" > 758.< / span > < span class = "mf" > 760.< / span > < span class = "mf" > 762.< / span > < span class = "p" > ]< / span >
< span class = "p" > [< / span > < span class = "mf" > 1703.< / span > < span class = "mf" > 1703.< / span > < span class = "mf" > 1703.< / span > < span class = "o" > ...< / span > < span class = "mf" > 760.< / span > < span class = "mf" > 761.< / span > < span class = "mf" > 762.< / span > < span class = "p" > ]< / span >
< span class = "o" > ...< / span >
< span class = "p" > [< / span > < span class = "mf" > 1767.< / span > < span class = "mf" > 1741.< / span > < span class = "mf" > 1706.< / span > < span class = "o" > ...< / span > < span class = "mf" > 769.< / span > < span class = "mf" > 762.< / span > < span class = "mf" > 768.< / span > < span class = "p" > ]< / span >
< span class = "p" > [< / span > < span class = "mf" > 1767.< / span > < span class = "mf" > 1746.< / span > < span class = "mf" > 1716.< / span > < span class = "o" > ...< / span > < span class = "mf" > 775.< / span > < span class = "mf" > 765.< / span > < span class = "mf" > 761.< / span > < span class = "p" > ]< / span >
< span class = "p" > [< / span > < span class = "mf" > 1781.< / span > < span class = "mf" > 1753.< / span > < span class = "mf" > 1730.< / span > < span class = "o" > ...< / span > < span class = "mf" > 766.< / span > < span class = "mf" > 762.< / span > < span class = "mf" > 759.< / span > < span class = "p" > ]]< / span >
< / pre > < / div >
< / div >
< div class = "highlight-ipython3 notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "n" > grid< / span > < span class = "o" > =< / span > < span class = "n" > gridData< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ]< / span >
< span class = "n" > topo< / span > < span class = "o" > =< / span > < span class = "n" > ma< / span > < span class = "o" > .< / span > < span class = "n" > masked_invalid< / span > < span class = "p" > (< / span > < span class = "n" > grid< / span > < span class = "o" > .< / span > < span class = "n" > getRawData< / span > < span class = "p" > ())< / span >
< span class = "n" > lons< / span > < span class = "p" > ,< / span > < span class = "n" > lats< / span > < span class = "o" > =< / span > < span class = "n" > grid< / span > < span class = "o" > .< / span > < span class = "n" > getLatLonCoords< / span > < span class = "p" > ()< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "n" > topo< / span > < span class = "o" > .< / span > < span class = "n" > min< / span > < span class = "p" > ())< / span > < span class = "c1" > # minimum elevation in our domain (meters)< / span >
< span class = "nb" > print< / span > < span class = "p" > (< / span > < span class = "n" > topo< / span > < span class = "o" > .< / span > < span class = "n" > max< / span > < span class = "p" > ())< / span > < span class = "c1" > # maximum elevation in our domain (meters)< / span >
< span class = "c1" > # Plot topography< / span >
< span class = "n" > cs< / span > < span class = "o" > =< / span > < span class = "n" > ax< / span > < span class = "o" > .< / span > < span class = "n" > contourf< / span > < span class = "p" > (< / span > < span class = "n" > lons< / span > < span class = "p" > ,< / span > < span class = "n" > lats< / span > < span class = "p" > ,< / span > < span class = "n" > topo< / span > < span class = "p" > ,< / span > < span class = "mi" > 80< / span > < span class = "p" > ,< / span > < span class = "n" > cmap< / span > < span class = "o" > =< / span > < span class = "n" > plt< / span > < span class = "o" > .< / span > < span class = "n" > get_cmap< / span > < span class = "p" > (< / span > < span class = "s1" > ' terrain' < / span > < span class = "p" > ),< / span > < span class = "n" > alpha< / span > < span class = "o" > =< / span > < span class = "mf" > 0.1< / span > < span class = "p" > ,< / span > < span class = "n" > extend< / span > < span class = "o" > =< / span > < span class = "s1" > ' both' < / span > < span class = "p" > )< / span >
< span class = "n" > cbar< / span > < span class = "o" > =< / span > < span class = "n" > fig< / span > < span class = "o" > .< / span > < span class = "n" > colorbar< / span > < span class = "p" > (< / span > < span class = "n" > cs< / span > < span class = "p" > ,< / span > < span class = "n" > shrink< / span > < span class = "o" > =< / span > < span class = "mf" > 0.5< / span > < span class = "p" > ,< / span > < span class = "n" > orientation< / span > < span class = "o" > =< / span > < span class = "s1" > ' horizontal' < / span > < span class = "p" > )< / span >
< span class = "n" > cbar< / span > < span class = "o" > .< / span > < span class = "n" > set_label< / span > < span class = "p" > (< / span > < span class = "s2" > " topography height in meters" < / span > < span class = "p" > )< / span >
< span class = "n" > fig< / span >
< / pre > < / div >
< / div >
< div class = "highlight-default notranslate" > < div class = "highlight" > < pre > < span > < / span > < span class = "mf" > 623.0< / span >
< span class = "mf" > 4328.0< / span >
< / pre > < / div >
< / div >
< img alt = "../../_images/Map_Resources_and_Topography_17_1.png" src = "../../_images/Map_Resources_and_Topography_17_1.png" / >
< / div >
< / div >
< / div >
< / div >
< footer >
< div class = "rst-footer-buttons" role = "navigation" aria-label = "footer navigation" >
2021-03-23 16:15:37 +00:00
< a href = "Model_Sounding_Data.html" class = "btn btn-neutral float-right" title = "Model Sounding Data" accesskey = "n" rel = "next" > Next < span class = "fa fa-arrow-circle-right" aria-hidden = "true" > < / span > < / a >
< a href = "METAR_Station_Plot_with_MetPy.html" class = "btn btn-neutral float-left" title = "METAR Station Plot with MetPy" accesskey = "p" rel = "prev" > < span class = "fa fa-arrow-circle-left" aria-hidden = "true" > < / span > Previous< / a >
2020-09-09 20:02:35 +00:00
< / div >
< hr / >
< div role = "contentinfo" >
< p >
2021-03-23 16:15:37 +00:00
© Copyright 2018, Unidata.
2020-09-09 20:02:35 +00:00
< / p >
< / div >
2021-03-23 16:15:37 +00:00
Built with < a href = "https://www.sphinx-doc.org/" > Sphinx< / a > using a
2020-09-09 20:02:35 +00:00
2021-03-23 16:15:37 +00:00
< a href = "https://github.com/readthedocs/sphinx_rtd_theme" > theme< / a >
2020-09-09 20:02:35 +00:00
provided by < a href = "https://readthedocs.org" > Read the Docs< / a > .
< / footer >
< / div >
< / div >
< / section >
< / div >
< script type = "text/javascript" >
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
< / script >
< / body >
< / html >