2017-08-14 10:18:50 -07:00
<!DOCTYPE html>
< html class = "no-js" >
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width,initial-scale=1" >
< meta name = "description" content = "Documentation for all things AWIPS." >
< link rel = "canonical" href = "http://unidata.github.io/awips2/python/upper-air-bufr-soundings/" >
2020-06-04 22:53:23 +00:00
< meta name = "author" content = "support-awips@unidata.ucar.edu" >
2017-08-14 10:18:50 -07:00
< link rel = "shortcut icon" href = "../../images/favicon.ico" >
2018-09-19 13:52:37 -07:00
< meta name = "generator" content = "mkdocs-0.17.5, mkdocs-unidata-1.5.4" >
2017-08-14 10:18:50 -07:00
< title > Upper air BUFR Soundings - Unidata AWIPS User Manual< / title >
< script src = "../../assets/javascripts/modernizr-56ade86843.js" > < / script >
< link rel = "stylesheet" href = "../../assets/stylesheets/application-b1a1975878.css" >
< link rel = "stylesheet" href = "../../assets/stylesheets/application-f78e5cb881.palette.css" >
< link rel = "stylesheet" href = "https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono" >
< style > body , input { font-family : "Roboto" , "Helvetica Neue" , Helvetica , Arial , sans-serif } code , kbd , pre { font-family : "Roboto Mono" , "Courier New" , Courier , monospace } < / style >
< link rel = "stylesheet" href = "https://fonts.googleapis.com/icon?family=Material+Icons" >
< link rel = "stylesheet" href = "../../css/extra.css" >
< / head >
< body data-md-color-primary = "blue-grey" data-md-color-accent = "light-blue" >
< svg class = "md-svg" >
< defs >
< svg xmlns = "http://www.w3.org/2000/svg" width = "416" height = "448" viewBox = "0 0 416 448" id = "github" > < path fill = "currentColor" d = "M160 304q0 10-3.125 20.5t-10.75 19T128 352t-18.125-8.5-10.75-19T96 304t3.125-20.5 10.75-19T128 256t18.125 8.5 10.75 19T160 304zm160 0q0 10-3.125 20.5t-10.75 19T288 352t-18.125-8.5-10.75-19T256 304t3.125-20.5 10.75-19T288 256t18.125 8.5 10.75 19T320 304zm40 0q0-30-17.25-51T296 232q-10.25 0-48.75 5.25Q229.5 240 208 240t-39.25-2.75Q130.75 232 120 232q-29.5 0-46.75 21T56 304q0 22 8 38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0 37.25-1.75t35-7.375 30.5-15 20.25-25.75T360 304zm56-44q0 51.75-15.25 82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5T212 416q-19.5 0-35.5-.75t-36.875-3.125-38.125-7.5-34.25-12.875T37 371.5t-21.5-28.75Q0 312 0 260q0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25 30.875Q171.5 96 212 96q37 0 70 8 26.25-20.5 46.75-30.25T376 64q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34 99.5z" / > < / svg >
< / defs >
< / svg >
< input class = "md-toggle" data-md-toggle = "drawer" type = "checkbox" id = "drawer" >
< input class = "md-toggle" data-md-toggle = "search" type = "checkbox" id = "search" >
< label class = "md-overlay" data-md-component = "overlay" for = "drawer" > < / label >
< header class = "md-header" data-md-component = "header" >
< nav class = "md-header-nav md-grid" >
< a href = "../.." > < div class = "background-logo" style = "background-image: url(../../images/cave.png);" > < / div >
< div class = "md-flex" >
< div class = "md-flex__cell md-flex__cell--shrink" >
< a href = "../.." title = "Unidata AWIPS User Manual" class = "md-icon md-icon--home md-header-nav__button" >
< / a >
< / div >
< div class = "md-flex__cell md-flex__cell--shrink" >
< label class = "md-icon md-icon--menu md-header-nav__button" for = "drawer" > < / label >
< / div >
< div class = "md-flex__cell md-flex__cell--stretch" >
< span class = "md-flex__ellipsis md-header-nav__title" >
2017-09-26 20:27:20 -07:00
< span class = "md-header-nav__parent" >
Python API
< / span >
Upper air BUFR Soundings
2017-08-14 10:18:50 -07:00
< / span >
< / div >
< div class = "md-flex__cell md-flex__cell--shrink" >
< label class = "md-icon md-icon--search md-header-nav__button" for = "search" > < / label >
2017-09-27 11:24:37 -07:00
< div class = "md-search" data-md-component = "search" role = "dialog" >
< label class = "md-search__overlay" for = "search" > < / label >
2017-08-14 10:18:50 -07:00
< div class = "md-search__inner" >
< form class = "md-search__form" name = "search" >
2017-09-27 11:24:37 -07:00
< input type = "text" class = "md-search__input" name = "query" required placeholder = "Search" autocapitalize = "off" autocorrect = "off" autocomplete = "off" spellcheck = "false" data-md-component = "query" >
2017-08-14 10:18:50 -07:00
< label class = "md-icon md-search__icon" for = "search" > < / label >
2017-09-27 11:24:37 -07:00
< button type = "reset" class = "md-icon md-search__icon" data-md-component = "reset" >  < / button >
2017-08-14 10:18:50 -07:00
< / form >
< div class = "md-search__output" >
< div class = "md-search__scrollwrap" data-md-scrollfix >
2017-09-27 11:24:37 -07:00
< div class = "md-search-result" data-md-component = "result" data-md-lang-search = "" data-md-lang-tokenizer = "[\s\-]+" >
2017-08-14 10:18:50 -07:00
< div class = "md-search-result__meta" data-md-lang-result-none = "No matching documents" data-md-lang-result-one = "1 matching document" data-md-lang-result-other = "# matching documents" >
Type to start searching
< / div >
< ol class = "md-search-result__list" > < / ol >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< div class = "md-flex__cell md-flex__cell--shrink" >
< div class = "md-header-nav__source" >
2018-09-19 13:52:37 -07:00
< a href = "https://github.com/Unidata/awips2/" title = "Go to repository" class = "md-source" data-md-source = "github" >
2017-08-14 10:18:50 -07:00
< div class = "md-source__icon" >
< svg viewBox = "0 0 24 24" width = "24" height = "24" >
< use xlink:href = "#github" width = "24" height = "24" > < / use >
< / svg >
< / div >
< div class = "md-source__repository" >
GitHub
< / div >
< / a >
< / div >
< / div >
< / div >
< / nav >
< / header >
< div class = "md-container" >
< main class = "md-main" >
< div class = "md-main__inner md-grid" data-md-component = "container" >
< div class = "md-sidebar md-sidebar--primary" data-md-component = "navigation" >
< div class = "md-sidebar__scrollwrap" >
< div class = "md-sidebar__inner" >
< nav class = "md-nav md-nav--primary" data-md-level = "0" >
< label class = "md-nav__title md-nav__title--site" for = "drawer" >
2017-09-27 11:24:37 -07:00
< div class = "md-nav__button md-logo" >
< i class = "md-icon md-icon--home" > < / i >
< / div >
2017-08-14 10:18:50 -07:00
Unidata AWIPS User Manual
< / label >
< div class = "md-nav__source" >
2018-09-19 13:52:37 -07:00
< a href = "https://github.com/Unidata/awips2/" title = "Go to repository" class = "md-source" data-md-source = "github" >
2017-08-14 10:18:50 -07:00
< div class = "md-source__icon" >
< svg viewBox = "0 0 24 24" width = "24" height = "24" >
< use xlink:href = "#github" width = "24" height = "24" > < / use >
< / svg >
< / div >
< div class = "md-source__repository" >
GitHub
< / div >
< / a >
< / div >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../.." title = "Home" class = "md-nav__link" >
Home
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../install/install-cave/" title = "Install CAVE" class = "md-nav__link" >
Install CAVE
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../install/install-edex/" title = "Install EDEX" class = "md-nav__link" >
Install EDEX
< / a >
< / li >
2020-06-22 22:13:20 +00:00
< li class = "md-nav__item" >
< a href = "../../install/common-problems/" title = "Common Problems" class = "md-nav__link" >
Common Problems
< / a >
< / li >
2017-08-14 10:18:50 -07:00
< li class = "md-nav__item md-nav__item--nested" >
2020-06-22 22:13:20 +00:00
< input class = "md-toggle md-nav__toggle" data-md-toggle = "nav-5" type = "checkbox" id = "nav-5" >
2017-08-14 10:18:50 -07:00
2020-06-22 22:13:20 +00:00
< label class = "md-nav__link" for = "nav-5" >
2017-08-14 10:18:50 -07:00
CAVE User Manual
< / label >
< nav class = "md-nav" data-md-component = "collapsible" data-md-level = "1" >
2020-06-22 22:13:20 +00:00
< label class = "md-nav__title" for = "nav-5" >
2017-08-14 10:18:50 -07:00
CAVE User Manual
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-perspective/" title = "D2D Perspective" class = "md-nav__link" >
D2D Perspective
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/maps-views-projections/" title = "Maps, Views, Projections" class = "md-nav__link" >
Maps, Views, Projections
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/bundles-and-procedures/" title = "Bundles and Procedures" class = "md-nav__link" >
Bundles and Procedures
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/localization-perspective/" title = "Localization Perspective" class = "md-nav__link" >
Localization Perspective
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/nsharp/" title = "NSHARP" class = "md-nav__link" >
NSHARP
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/warngen/" title = "WarnGen Walkthrough" class = "md-nav__link" >
WarnGen Walkthrough
< / a >
< / li >
< li class = "md-nav__item" >
2019-03-21 14:54:16 -07:00
< a href = "../../cave/goes-16-satellite/" title = "GOES 16/17" class = "md-nav__link" >
GOES 16/17
2017-08-14 10:18:50 -07:00
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-gridded-models/" title = "Volume Browser" class = "md-nav__link" >
Volume Browser
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-tools/" title = "Display Tools" class = "md-nav__link" >
Display Tools
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-radar-tools/" title = "Radar Tools" class = "md-nav__link" >
Radar Tools
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-edit-menus/" title = "Editing Menus" class = "md-nav__link" >
Editing Menus
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/cave-localization/" title = "Change Localization" class = "md-nav__link" >
Change Localization
< / a >
< / li >
2018-08-03 11:47:52 -07:00
< li class = "md-nav__item" >
< a href = "../../cave/import-export/" title = "Import/Export" class = "md-nav__link" >
Import/Export
< / a >
< / li >
2017-08-14 10:18:50 -07:00
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
2020-06-22 22:13:20 +00:00
< input class = "md-toggle md-nav__toggle" data-md-toggle = "nav-6" type = "checkbox" id = "nav-6" >
2017-08-14 10:18:50 -07:00
2020-06-22 22:13:20 +00:00
< label class = "md-nav__link" for = "nav-6" >
2017-08-14 10:18:50 -07:00
EDEX User Manual
< / label >
< nav class = "md-nav" data-md-component = "collapsible" data-md-level = "1" >
2020-06-22 22:13:20 +00:00
< label class = "md-nav__title" for = "nav-6" >
2017-08-14 10:18:50 -07:00
EDEX User Manual
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
2017-09-26 20:27:20 -07:00
< li class = "md-nav__item" >
2018-08-03 11:47:52 -07:00
< a href = "../../install/start-edex/" title = "EDEX Start and Stop" class = "md-nav__link" >
EDEX Start and Stop
2017-09-26 20:27:20 -07:00
< / a >
< / li >
2017-08-14 10:18:50 -07:00
< li class = "md-nav__item" >
2018-08-03 11:47:52 -07:00
< a href = "../../edex/settings/" title = "EDEX Settings" class = "md-nav__link" >
EDEX Settings
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/distributed-computing/" title = "Distributed EDEX" class = "md-nav__link" >
Distributed EDEX
2017-08-14 10:18:50 -07:00
< / a >
< / li >
2018-09-28 09:12:06 -07:00
< li class = "md-nav__item" >
< a href = "../../edex/edex-ingest-docker-container/" title = "Docker EDEX" class = "md-nav__link" >
Docker EDEX
< / a >
< / li >
2017-08-14 10:18:50 -07:00
< li class = "md-nav__item" >
< a href = "../../edex/ldm/" title = "LDM Feeds" class = "md-nav__link" >
LDM Feeds
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/data-distribution-files/" title = "Data Distribution Files" class = "md-nav__link" >
Data Distribution Files
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/new-grid/" title = "Ingest a New Grid" class = "md-nav__link" >
Ingest a New Grid
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/data-purge/" title = "Purging and Retention" class = "md-nav__link" >
Purging and Retention
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/edex-users/" title = "Monitor Users" class = "md-nav__link" >
Monitor Users
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/data-plugins/" title = "Data Plugins" class = "md-nav__link" >
Data Plugins
< / a >
< / li >
2017-10-25 12:51:10 -07:00
< li class = "md-nav__item" >
< a href = "../../edex/case-studies/" title = "Archive Case Studies" class = "md-nav__link" >
Archive Case Studies
< / a >
< / li >
2017-08-14 10:18:50 -07:00
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
2020-06-22 22:13:20 +00:00
< input class = "md-toggle md-nav__toggle" data-md-toggle = "nav-7" type = "checkbox" id = "nav-7" >
2017-08-14 10:18:50 -07:00
2020-06-22 22:13:20 +00:00
< label class = "md-nav__link" for = "nav-7" >
2018-08-03 11:47:52 -07:00
Supported Data Types
< / label >
< nav class = "md-nav" data-md-component = "collapsible" data-md-level = "1" >
2020-06-22 22:13:20 +00:00
< label class = "md-nav__title" for = "nav-7" >
2017-08-14 10:18:50 -07:00
Supported Data Types
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-grids/" title = "Gridded Model Display" class = "md-nav__link" >
Gridded Model Display
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-pointdata-surface-obs/" title = "Surface Obs" class = "md-nav__link" >
Surface Obs
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-satellite/" title = "Satellite Imagery" class = "md-nav__link" >
Satellite Imagery
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-radar/" title = "NEXRAD Radar" class = "md-nav__link" >
NEXRAD Radar
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-uair/" title = "Upper Air" class = "md-nav__link" >
Upper Air
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-hydro/" title = "NCEP/Hydro" class = "md-nav__link" >
NCEP/Hydro
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-map-resources/" title = "Map Overlays" class = "md-nav__link" >
Map Overlays
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--active md-nav__item--nested" >
2020-06-22 22:13:20 +00:00
< input class = "md-toggle md-nav__toggle" data-md-toggle = "nav-8" type = "checkbox" id = "nav-8" checked >
2017-08-14 10:18:50 -07:00
2020-06-22 22:13:20 +00:00
< label class = "md-nav__link" for = "nav-8" >
2017-08-14 10:18:50 -07:00
Python API
< / label >
< nav class = "md-nav" data-md-component = "collapsible" data-md-level = "1" >
2020-06-22 22:13:20 +00:00
< label class = "md-nav__title" for = "nav-8" >
2017-08-14 10:18:50 -07:00
Python API
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../python-awips-data-access/" title = "Overview" class = "md-nav__link" >
Overview
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../awips-grids-and-cartopy/" title = "AWIPS Grids and Cartopy" class = "md-nav__link" >
AWIPS Grids and Cartopy
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../satellite-imagery/" title = "Satellite Imagery" class = "md-nav__link" >
Satellite Imagery
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../nexrad-level-3-radar/" title = "NEXRAD Level 3 Radar" class = "md-nav__link" >
NEXRAD Level 3 Radar
< / a >
< / li >
< li class = "md-nav__item md-nav__item--active" >
< input class = "md-toggle md-nav__toggle" data-md-toggle = "toc" type = "checkbox" id = "toc" >
< a href = "./" title = "Upper air BUFR Soundings" class = "md-nav__link md-nav__link--active" >
Upper air BUFR Soundings
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../model-sounding-data/" title = "Model Sounding Data" class = "md-nav__link" >
Model Sounding Data
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../map-resources-and-topography/" title = "Map Resources and Topography" class = "md-nav__link" >
Map Resources and Topography
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../surface-obs-plot-metpy/" title = "Surface Obs Plot with MetPy" class = "md-nav__link" >
Surface Obs Plot with MetPy
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
2020-06-22 22:13:20 +00:00
< input class = "md-toggle md-nav__toggle" data-md-toggle = "nav-9" type = "checkbox" id = "nav-9" >
2017-08-14 10:18:50 -07:00
2020-06-22 22:13:20 +00:00
< label class = "md-nav__link" for = "nav-9" >
2017-08-14 10:18:50 -07:00
Development
< / label >
< nav class = "md-nav" data-md-component = "collapsible" data-md-level = "1" >
2020-06-22 22:13:20 +00:00
< label class = "md-nav__title" for = "nav-9" >
2017-08-14 10:18:50 -07:00
Development
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../dev/awips-development-environment/" title = "AWIPS Development Environment (ADE)" class = "md-nav__link" >
AWIPS Development Environment (ADE)
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
2020-06-22 22:13:20 +00:00
< input class = "md-toggle md-nav__toggle" data-md-toggle = "nav-10" type = "checkbox" id = "nav-10" >
2017-08-14 10:18:50 -07:00
2020-06-22 22:13:20 +00:00
< label class = "md-nav__link" for = "nav-10" >
2017-08-14 10:18:50 -07:00
Appendix
< / label >
< nav class = "md-nav" data-md-component = "collapsible" data-md-level = "1" >
2020-06-22 22:13:20 +00:00
< label class = "md-nav__title" for = "nav-10" >
2017-08-14 10:18:50 -07:00
Appendix
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../appendix/appendix-grid-parameters/" title = "AWIPS Grid Parameters" class = "md-nav__link" >
AWIPS Grid Parameters
< / a >
< / li >
2019-02-06 10:17:32 -07:00
< li class = "md-nav__item" >
< a href = "../maps-database/" title = "Maps Database" class = "md-nav__link" >
Maps Database
< / a >
< / li >
2017-08-14 10:18:50 -07:00
< li class = "md-nav__item" >
< a href = "../../appendix/appendix-acronyms/" title = "Acronyms and Abbreviations" class = "md-nav__link" >
Acronyms and Abbreviations
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../appendix/appendix-cots/" title = "COTS and FOSS" class = "md-nav__link" >
COTS and FOSS
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../appendix/appendix-wsr88d/" title = "WSR-88D Product Table" class = "md-nav__link" >
WSR-88D Product Table
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/cave-keyboard-shortcuts/" title = "Keyboard Shortcuts" class = "md-nav__link" >
Keyboard Shortcuts
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-content" >
< article class = "md-content__inner md-typeset" >
2018-07-30 11:05:17 -07:00
< a href = "https://github.com/Unidata/awips2/edit/unidata_18.1.1/docs/python/upper-air-bufr-soundings.md" title = "Edit this page" class = "md-icon md-content__icon" > edit< / a >
2017-08-14 10:18:50 -07:00
< h1 > Upper air BUFR Soundings< / h1 >
< p > The following script takes you through the steps of retrieving an Upper Air vertical profile from an AWIPS EDEX server and plotting a Skew-T/Log-P chart with Matplotlib and MetPy.< / p >
< p > The < strong > bufrua< / strong > plugin returns separate objects for parameters at < strong > mandatory levels< / strong > and at < strong > significant temperature levels< / strong > . For the Skew-T/Log-P plot, significant temperature levels are used to plot the pressure, temperature, and dewpoint lines, while mandatory levels are used to plot the wind profile.< / p >
< pre > < code class = "python" > %matplotlib inline
from awips.dataaccess import DataAccessLayer
import matplotlib.tri as mtri
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
import numpy as np
import math
from metpy.calc import get_wind_speed, get_wind_components, lcl, dry_lapse, parcel_profile
from metpy.plots import SkewT, Hodograph
from metpy.units import units, concatenate
# Set host
DataAccessLayer.changeEDEXHost(" edex-cloud.unidata.ucar.edu" )
request = DataAccessLayer.newDataRequest()
# Set data type
request.setDatatype(" bufrua" )
availableLocs = DataAccessLayer.getAvailableLocationNames(request)
availableLocs.sort()
# Set Mandatory and Significant Temperature level parameters
MAN_PARAMS = set(['prMan', 'htMan', 'tpMan', 'tdMan', 'wdMan', 'wsMan'])
SIGT_PARAMS = set(['prSigT', 'tpSigT', 'tdSigT'])
request.setParameters(" wmoStaNum" , " validTime" , " rptType" , " staElev" , " numMand" ,
" numSigT" , " numSigW" , " numTrop" , " numMwnd" , " staName" )
request.getParameters().extend(MAN_PARAMS)
request.getParameters().extend(SIGT_PARAMS)
# Set station ID (not name)
request.setLocationNames(" 72562" ) #KLBF
# Get all times
datatimes = DataAccessLayer.getAvailableTimes(request)
# Get most recent record
response = DataAccessLayer.getGeometryData(request,times=datatimes[-1].validPeriod)
# Initialize data arrays
tdMan,tpMan,prMan,wdMan,wsMan = np.array([]),np.array([]),np.array([]),np.array([]),np.array([])
prSig,tpSig,tdSig = np.array([]),np.array([]),np.array([])
manGeos = []
sigtGeos = []
# Build arrays
for ob in response:
if set(ob.getParameters()) & MAN_PARAMS:
manGeos.append(ob)
prMan = np.append(prMan,ob.getNumber(" prMan" ))
tpMan = np.append(tpMan,ob.getNumber(" tpMan" ))
tdMan = np.append(tdMan,ob.getNumber(" tdMan" ))
wdMan = np.append(wdMan,ob.getNumber(" wdMan" ))
wsMan = np.append(wsMan,ob.getNumber(" wsMan" ))
continue
if set(ob.getParameters()) & SIGT_PARAMS:
sigtGeos.append(ob)
prSig = np.append(prSig,ob.getNumber(" prSigT" ))
tpSig = np.append(tpSig,ob.getNumber(" tpSigT" ))
tdSig = np.append(tdSig,ob.getNumber(" tdSigT" ))
continue
# Sort mandatory levels (but not sigT levels) because of the 1000.MB interpolation inclusion
ps = prMan.argsort()[::-1]
wpres = prMan[ps]
direc = wdMan[ps]
spd = wsMan[ps]
tman = tpMan[ps]
dman = tdMan[ps]
# Flag missing data
prSig[prSig < = -9999] = np.nan
tpSig[tpSig < = -9999] = np.nan
tdSig[tdSig < = -9999] = np.nan
wpres[wpres < = -9999] = np.nan
tman[tman < = -9999] = np.nan
dman[dman < = -9999] = np.nan
direc[direc < = -9999] = np.nan
spd[spd < = -9999] = np.nan
# assign units
p = (prSig/100) * units.mbar
T = (tpSig-273.15) * units.degC
Td = (tdSig-273.15) * units.degC
wpres = (wpres/100) * units.mbar
tman = tman * units.degC
dman = dman * units.degC
u,v = get_wind_components(spd, np.deg2rad(direc))
# Create SkewT/LogP
plt.rcParams['figure.figsize'] = (8, 10)
skew = SkewT()
skew.plot(p, T, 'r', linewidth=2)
skew.plot(p, Td, 'g', linewidth=2)
skew.plot_barbs(wpres, u, v)
skew.ax.set_ylim(1000, 100)
skew.ax.set_xlim(-30, 30)
title_string = " T(F) Td "
title_string += " " + str(ob.getString(" staName" ))
title_string += " " + str(ob.getDataTime().getRefTime())
title_string += " (" + str(ob.getNumber(" staElev" )) + " m elev)"
title_string += " \n" + str(round(T[0].to('degF').item(),1))
title_string += " " + str(round(Td[0].to('degF').item(),1))
plt.title(title_string, loc='left')
# Calculate LCL height and plot as black dot
l = lcl(p[0], T[0], Td[0])
lcl_temp = dry_lapse(concatenate((p[0], l)), T[0])[-1].to('degC')
skew.plot(l, lcl_temp, 'ko', markerfacecolor='black')
# Calculate full parcel profile and add to plot as black line
prof = parcel_profile(p, T[0], Td[0]).to('degC')
skew.plot(p, prof, 'k', linewidth=2)
# An example of a slanted line at constant T -- in this case the 0 isotherm
l = skew.ax.axvline(0, color='c', linestyle='--', linewidth=2)
# Draw hodograph
ax_hod = inset_axes(skew.ax, '30%', '30%', loc=3)
h = Hodograph(ax_hod, component_range=max(wsMan))
h.add_grid(increment=20)
h.plot_colormapped(u, v, spd)
# Show the plot
plt.show()
< / code > < / pre >
< p > < img alt = "png" src = "../../images/output_1_0.png" / > < / p >
< / article >
< / div >
< / div >
< / main >
< footer class = "md-footer" >
< div class = "md-footer-nav" >
< nav class = "md-footer-nav__inner md-grid" >
< a href = "../nexrad-level-3-radar/" title = "NEXRAD Level 3 Radar" class = "md-flex md-footer-nav__link md-footer-nav__link--prev" rel = "prev" >
< div class = "md-flex__cell md-flex__cell--shrink" >
< i class = "md-icon md-icon--arrow-back md-footer-nav__button" > < / i >
< / div >
< div class = "md-flex__cell md-flex__cell--stretch md-footer-nav__title" >
< span class = "md-flex__ellipsis" >
< span class = "md-footer-nav__direction" >
Previous
< / span >
NEXRAD Level 3 Radar
< / span >
< / div >
< / a >
< a href = "../model-sounding-data/" title = "Model Sounding Data" class = "md-flex md-footer-nav__link md-footer-nav__link--next" rel = "next" >
< div class = "md-flex__cell md-flex__cell--stretch md-footer-nav__title" >
< span class = "md-flex__ellipsis" >
< span class = "md-footer-nav__direction" >
Next
< / span >
Model Sounding Data
< / span >
< / div >
< div class = "md-flex__cell md-flex__cell--shrink" >
< i class = "md-icon md-icon--arrow-forward md-footer-nav__button" > < / i >
< / div >
< / a >
< / nav >
< / div >
< div class = "md-footer-meta md-typeset" >
< div class = "md-footer-meta__inner md-grid" >
< div class = "md-footer-copyright" >
< div class = "md-footer-copyright__highlight" >
2020-06-04 22:53:23 +00:00
Copyright © 2020 Unidata Program Center.
2017-08-14 10:18:50 -07:00
< / div >
powered by
< a href = "http://www.mkdocs.org" title = "MkDocs" > MkDocs< / a >
and
< a href = "http://squidfunk.github.io/mkdocs-material/" title = "Material for MkDocs" >
Material for MkDocs< / a >
< / div >
< div class = "md-footer-social" >
< link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" >
2018-02-15 12:27:30 -07:00
< a href = "https://www.unidata.ucar.edu/software/awips2" class = "md-footer-social__link fa fa-globe" > < / a >
2017-08-14 10:18:50 -07:00
< a href = "https://github.com/Unidata/awips2" class = "md-footer-social__link fa fa-github-alt" > < / a >
< a href = "https://twitter.com/Unidata" class = "md-footer-social__link fa fa-twitter" > < / a >
< a href = "https://facebook.com/Unidata" class = "md-footer-social__link fa fa-facebook" > < / a >
< / div >
< / div >
< / div >
< / footer >
< / div >
< script src = "../../assets/javascripts/application-0b7df094bf.js" > < / script >
< script > app . initialize ( { url : { base : "../.." } } ) < / script >
< / body >
< / html >