Skip to content

Releases: Unidata/MetPy

1.2.0

23 Jan 17:45
df6f7c5
Compare
Choose a tag to compare

Highlights

  • Added K-Index and Totals Totals sounding index functions
  • Added wind gusts to parse METAR output
  • Significant performance increase for moist lapse and a variety of related functions
  • GEMPAK sounding reader is much faster now
  • Fixed SkewT compatibility with Matplotlib 3.5
  • Fixes for a variety of edge cases in moist_lapse
  • Variety of bugs fixed in METAR and GEMPAK readers
  • Full support for Python 3.10

New Features 🎉

Enhancements 😄

Bugs Fixed 🐛

Other Changes

New Contributors

Full Changelog: v1.1.0...v1.2.0

1.1.0

09 Aug 17:19
2f4de66
Compare
Choose a tag to compare

This is the first feature release since 1.0.

Highlights

  • Added classes to read a variety of data in GEMPAK-formatted files
  • Added showalter_index calculation
  • Added PlotGeometry to the simplified plotting interface, which makes it easy to plot a variety of geospatial data (e.g. SPC convective outlooks or NHC hurricane wind swaths in geojson format). See this notebook for examples.
  • Significantly improved METAR parser to output both the visibility and remarks part of the reports, as well as better handle more weather codes (like 'FU')
  • Improvements to simplified plotting interface including better notebook tab completion, support for controlling font size, and GEMPAK-like zooming on areas (e.g. '+us')
  • Improved detection of problematic soundings in calculations
  • Dropped support for Python <3.7 and NumPy <1.17
  • Reduced the time it takes to import metpy.io
  • Fixed up a variety of unit issues in calculations

Contributors

@dopplershift, @joejoezz, @dcamron, @C2oWisComing, @jthielen, @github-actions[bot], @lswenson, @kgoebber, @23ccozad, @sgdecker, @ShunsukeHoshino, @jrleeman, @albernsrya, @lbunting, @dlaw, @akrherz, @mabaxter, @michaelavs, @nawendt, @eliteuser26 contributed code to this release.

Issues Closed

  • Issue 2005 - calc.moist_lapse returns incorrect values for Fahrenheit
  • Issue 1999 - Showalter Index calculation difference from value in Wyoming upperair website
  • Issue 1981 - Nightly build is failing
  • Issue 1970 - Fix unit-handling in azimuth_range_to_lat_lon
  • Issue 1951 - METAR parser not handling 'FU' code
  • Issue 1948 - Error in absolute_momentum (bug in normal_component?)
  • Issue 1945 - Plotting geoJSON and shapefiles
  • Issue 1938 - get_layer heights unit issue
  • Issue 1916 - Nightly build is failing
  • Issue 1901 - Level3File import is a bit bloated
  • Issue 1881 - Getting started information missing
  • Issue 1839 - Sync dependencies in setup.cfg
  • Issue 1805 - Ability to change fontsize in declarative interface
  • Issue 1791 - Support pyproj 3
  • Issue 1775 - reduce_point_density and bad points
  • Issue 1719 - copy() method for declarative interface
  • Issue 1674 - Refactor mean_pressure_weighted
  • Issue 1549 - Bounds issue with precipitable water
  • Issue 1546 - Drop Python 3.6
  • Issue 1306 - Visibility and Remarks in metar decoder not available in Pandas dataframe
  • Issue 1288 - Declarative extent zooming in/out
  • Issue 1278 - Declarative Plotting Tab Completion
  • Issue 968 - Set module on exported functions, etc.
  • Issue 630 - Add Showalter and Modified Showalter Index

24 issues were closed in this release.

Pull Requests Merged

49 pull requests were closed in this release.

1.0.1

28 Apr 23:07
fabdf83
Compare
Choose a tag to compare

Bug fixes for 1.0

Highlights

  • Fixed issue with passing masked arrays to get_layer. Also standardized internal unit handling to avoid more of these issues
  • Fixed nan-handling and wet_bulb_temperature
  • Fixed NEXRAD parsing with legacy-formatted files
  • Fixed declarative contour plotting with global data
  • Fixed issue where .metpy.units would break lazy loading of xarray data
  • Fixed Bunkers storm motion to properly non-pressure-weighted means
  • Fixed unit behavior in mean_pressure_weighted

Contributors

@dopplershift, @dcamron, @akrherz, @jthielen, @zmoon, @jsillin, @kgoebber, @ddirks, @aschueth, @jrleeman contributed code to this release.

Issues Closed

  • Issue 1748 - parse_cf loads all data into memory when grid_mapping is missing since .metpy.units checks .data
  • Issue 1737 - Address numpy 1.20 DeprecationWarning for np.{bool,int,float}
  • Issue 1726 - Release note links incorrect
  • Issue 1716 - Copyright in footer 2021-2020
  • Issue 1705 - Wet Bulb Sounding Computation fails to converge after 50 iterations, value is nan
  • Issue 1648 - Fix incorrect cross-section coordinates
  • Issue 1635 - mean_pressure_weighted unit behavior
  • Issue 1628 - Release docs action
  • Issue 1361 - Bunkers motion using pressure-weighted mean instead of normal mean

In this release 9 issues were closed.

Pull Requests Merged

In this release 19 pull requests were closed.

1.0.0

22 Dec 07:51
bdc5964
Compare
Choose a tag to compare

Our first stable API release. Crux of it will be eliminating all deprecated functionality (like dim_order), ironing out the XArray/units integration, and making sure function calls are something we're willing to support for a few years.

API Changes

  • dx/dy and dim_x/dim_y arguments divergence and vorticity are now only passable as keyword arguments
  • Can no longer set values in a DataArray using the unit_array accessor attribute
  • When DataArray instances are passed as inputs, the returned values are almost always also DataArray instances rather than Pint Quantity instances.
  • lat_lon_grid_deltas now takes a pyproj.Geod instance directly rather than keyword arguments for constructing one.
  • Removed dim_order argument--all functions either rely on DataArray metadata or assume data have trailing dimensions as y, x
  • Remove previously deprecated items
    • bounds argument to plot_colormapped
    • tmpk_out argument to isentropic_interpolation
    • dewpoint_rh
    • Viridis colortable
  • Rename many function arguments to be consistent and clear (e.g. potential_temperature instead of thta)
  • Re-order function arguments to (pressure, temperature, moisture) to be consistent with rest of library:
    • relative_humidity_wet_psychrometric
    • psychrometric_vapor_pressure_wet
    • mixing_ratio_from_relative_humidity
    • relative_humidity_from_mixing_ratio
    • relative_humidity_from_specific_humidity
    • dewpoint_from_specific_humidity
    • specific_humidity_from_dewpoint
  • Update signatures for ageostrophic_wind, precipitable_water, and storm_relative_helicity (as warned previously)

Highlights

  • New documentation layout and theme
  • Add 1.0 upgrade guide
  • Update constant values from more robust sources
  • Better support for taking in xarray DataArrays
  • Add capability to limit shading of CIN on SkewT
  • Function to add longitude/latitude to Pandas DataFrame
  • Support for % as a unit abbreviation in a string
  • Support for changing barb size on station plots in simplified plotting interface
  • Fixed up declarative interface docs
  • Support for returning xarray DataArrays instances from calculations when the inputs are also DataArray instances
  • Support for inputs where Pint Quantity instances are stored within DataArray instances
  • Fixes errors when passing masked arrays to various CAPE calculations
  • Support for Albers Equal Area projection
  • Many fixes updates for NEXRAD format support, including direct reading of file objects from the NEXRAD S3 archive (from e.g. boto3) and using pathlib.Path instances, as well as some updates for NEXRAD ORPG Build 19.0 changes.
  • Improve default date handling in parse_metar_file
  • PyProj >= 2.3 is now a required dependency for calculations, and CartoPy is only needed for related plotting capabilities.
  • PlotObs.level now defaults to None, or no subsetting.
  • Using standard library modules importlib.resources and importlib.metadata (and their backports) rather than pkg_resources from setuptools. This fixes errors getting MetPy's version from unconventional installs.

Contributors

@dcamron, @dopplershift, @jthielen, @DanielAdriaansen, @kgoebber, @gewitterblitz, @marcinkawka, @raybellwaves, @MinchinWeb contributed code to this release.

Issues Closed

  • Issue 1603 - precipitable_water with xarray objects throws dimension error in rc2
  • Issue 1594 - Citing MetPy in AMS v5.0 latex template
  • Issue 1590 - Contour interpolation problem
  • Issue 1588 - Declarative figure size only takes ints
  • Issue 1574 - Declarative Plotting Error with Unit Conversion and Format Function
  • Issue 1567 - DOC: startingguide doesn't run
  • Issue 1550 - Crashing with CartoPy 0.14.1
  • Issue 1548 - RC2 advection calculation does not get coordinate data from DataArray

In this release 8 issues were closed.

Pull Requests Merged

In this release 22 pull requests were closed.

1.0 Release Candidate 2

09 Oct 06:19
f8d2fcd
Compare
Choose a tag to compare
Pre-release

Version 1.0 (2020/10/08)

Second release candidate for our first stable release.

This log only mentions changes since RC1.

API Changes

  • dx/dy and dim_x/dim_y arguments divergence and vorticity are now only passable as keyword arguments
  • Can no longer set values in a DataArray using the unit_array accessor attribute
  • When DataArray instances are passed as inputs, the returned values are almost always also DataArray instances rather than Pint Quantity instances.
  • lat_lon_grid_deltas now takes a pyproj.Geod instance directly rather than keyword arguments for constructing one.

Highlights

  • Support for returning xarray DataArrays instances from calculations when the inputs are also DataArray instances
  • Support for inputs where Pint Quantity instances are stored within DataArray instances
  • Fixes errors when passing masked arrays to various CAPE calculations
  • Support for Albers Equal Area projection
  • Many fixes updates for NEXRAD format support, including direct reading of file objects from the NEXRAD S3 archive (from e.g. boto3) and using pathlib.Path instances, as well as some updates for NEXRAD ORPG Build 19.0 changes.
  • Improve default date handling in parse_metar_file
  • PyProj >= 2.3 is now a required dependency for calculations, and CartoPy is only needed for related plotting capabilities.
  • PlotObs.level now defaults to None, or no subsetting.
  • Using standard library modules importlib.resources and importlib.metadata (and their backports) rather than pkg_resources from setuptools. This fixes errors getting MetPy's version from unconventional installs.

Issues Closed

In this release 22 issues were closed.

Pull Requests Merged

Read more

0.12.2

06 Aug 20:18
776bacd
Compare
Choose a tag to compare

Version 0.12.2 (2020/08/05)

Highlights

  • Fix compatibility with CartoPy 0.18
  • Fix compatibility with matplotlib 3.3
  • Fixed problems using masked arrays in wind_direction, equivalent_potential_temperature, and saturation_equivalent_potential_temperature

Contributors

@jthielen, @kgoebber, @LProx2020, @rpmanser, and @dopplershift contributed code to this release.

Issues Closed

In this release 5 issues were closed.

Pull Requests Merged

In this release 9 pull requests were closed.

0.12.1

18 Apr 00:33
abad235
Compare
Choose a tag to compare

Version 0.12.1 (2020/04/17)

Highlights

  • Fix for incompatibility with XArray 0.15.1
  • Fix for clabel in simplified plotting interface
  • A few misc documentation fixes
  • Fix reading METAR files with bad encoding
  • Fixed diff with masked arrays with units

Issues Closed

In this release 2 issues were closed.

Pull Requests Merged

In this release 6 pull requests were closed.

1.0 Release Candidate 1

14 Jan 14:22
852e2ce
Compare
Choose a tag to compare
Pre-release

Version 1.0 RC1 (2020/01/14)

Our first stable release!

API Changes

  • Removed dim_order argument--all functions either rely on DataArray metadata or assume data have trailing dimensions as y, x
  • Remove previously deprecated items
    • bounds argument to plot_colormapped
    • tmpk_out argument to isentropic_interpolation
    • dewpoint_rh
    • Viridis colortable
  • Rename many function arguments to be consistent and clear (e.g. potential_temperature instead of thta)
  • Re-order function arguments to (pressure, temperature, moisture) to be consistent with rest of library:
    • relative_humidity_wet_psychrometric
    • psychrometric_vapor_pressure_wet
    • mixing_ratio_from_relative_humidity
    • relative_humidity_from_mixing_ratio
    • relative_humidity_from_specific_humidity
    • dewpoint_from_specific_humidity
    • specific_humidity_from_dewpoint
  • Update signatures for ageostrophic_wind, precipitable_water, and storm_relative_helicity (as warned previously)

Highlights

  • Better support for taking in xarray DataArrays
  • Add capability to limit shading of CIN on SkewT
  • Function to add longitude/latitude to Pandas DataFrame
  • Support for % as a unit abbreviation in a string
  • Support for changing barb size on station plots in simplified plotting interface
  • Fixed up declarative interface docs

Issues Closed

In this release 18 issues were closed.

Pull Requests Merged

  • 1303 - Implement basic coordinate/CRS/attribute dataset helpers
  • PR 1302 - Remove dim_order (1287)
  • PR 1301 - Clarify documentation on layers traits (1297)
  • PR 1299 - Renames (1113)
  • PR 1298 - Declarative fixes (1295)
  • PR 1294 - Misc small items (1276, 1274, 1268)
  • PR 1286 - Removals of all deprecated stuff (1127, 1112)
  • PR 1285 - Refactor parse_cf to not modify coordinates inplace (1283)
  • PR 1282 - More pint fixes (1271)
  • PR 1281 - Add percent sign and UDUNITS exponent syntax support via Pint's new preprocessor option (1134)
  • PR 1280 - Fix the documentation around the declarative colorbar (1277)
  • PR 1273 - adds function to lookup and add station lat/lon to dataframe
  • PR 1272 - fixes read of metar file with bad encoding
  • PR 1267 - adds functionality to obs declarative
  • PR 1264 - Add station plot locations
  • PR 1260 - Refactor xarray grid deltas calculation to handle axis order flexibly (912, 1249, 1249)
  • PR 1223 - Add arbitrary window smoother and refactor existing smoothers (665)
  • PR 1139 - Limit shading of CIN (861)

In this release 17 pull requests were closed.

0.12.0

06 Jan 04:37
0653de8
Compare
Choose a tag to compare

Version 0.12 (2020/01/05)

This is the first release that only supports Python 3.

API Changes

  • precipitable_water now issues a FutureWarning due to an impending change to its function signature in 1.0--this will change the signature to precipitable_water(pressure, dewpt, *, bottom=None, top=None) for better consistency with the rest of the library. To avoid this warning, import the function with from metpy.future import precipitable_water
  • storm_relative_helicity now issues a FutureWarning due to an impending change to its function signature in 1.0--this will change the signature to storm_relative_helicity(heights, u, v, depth, *, bottom, storm_u, storm_v) for better consistency with the rest of the library. To avoid this warning, import the function with from metpy.future import storm_relative_helicity
  • dewpoint_rh has been deprecated in favor of dewpoint_from_relative_humidity, and will be removed in 1.0
  • Removed previously deprecated functions get_wind_components, get_wind_dir, get_wind_speed, interp, interpolate_nans, and log_interp as well as the metpy.gridding sub-package.

Highlights

  • Added parser for METAR-formatted reports
  • Update NEXRAD Level2File to handle future format changes
  • Added calculation mixed_layer_cape_cin
  • geopotential <-> height calculations modified to use standard gravity
  • Added declarative interface for station plots
  • Added arrows to go with barbs on station plots
  • Added support for Python 3.8, dropped support for Python 2.7
  • Compatibility fixes for future versions of Pint
  • Enhancements to xarray coordinate identification
  • Fixed average spacing calculation in interpolation
  • Added 'wide' and 'most_cape' options for LFC/EL
  • Added wx_code_to_numeric for converting text weather codes (e.g. '+SNRA') to corresponding WMO code.

Contributors

@ahijevyc, @akrherz, @jthielen, @kgoebber, @mgrover1, @zbruick, and @dopplershift contributed code to this release.

Issues Closed

In this release 16 issues were closed.

Pull Requests Merged

  • PR 1266 - Fixes
  • PR 1262 - fix docs
  • PR 1261 - Still further updates to pint master branch compatibility
  • PR 1259 - Update PlotObs for time and station dimension naming
  • PR 1257 - add exception catch
  • PR 1255 - Fix interpolation average spacing (1230)
  • PR 1254 - Plotting fixes (1229, 1207)
  • PR 1253 - Fix smoothing unit-handling (1221, 1138)
  • PR 1252 - MNT: Add another NEXRAD file for testing
  • PR 1251 - NEXRAD Updates (1239)
  • PR 1250 - Further updates to pint master branch compatibility
  • PR 1246 - MNT: Update examples for date plotting (1245)
  • PR 1244 - Update some function signatures (1235)
  • PR 1242 - Fixes for pre-releases (1222)
  • PR 1241 - Adds a declarative syntax for point observations
  • PR 1238 - Adds function to get numeric wx code
  • PR 1236 - Modify xarray coordinate identification from CF axis to generic labels, permitting latitude/longitude identification (1090, 1090)
  • PR 1233 - Refactor _reassign_quantity_indexer to avoid modifying dict keys while iterating
  • PR 1227 - Add example to PW docstring (1226)
  • PR 1225 - Identify 'lv_' variables as vertical coordinates.
  • PR 1217 - Update xarray time derivative for subsecond precision
  • PR 1213 - avoid potential circular ref by lazy import (1211)
  • PR 1212 - Add support for Python 3.8
  • PR 1208 - Deprecate dewpoint_rh in favor of dewpoint_from_relative_humidity
  • PR 1195 - Removal of deprecations for 0.12 (870)
  • PR 1174 - Change geopotential <-> height formulas to use standard gravity
  • PR 1163 - Drop support for Python 2.7! (801)
  • PR 1148 - Add arrows to StationPlot (955)
  • PR 1145 - Add mixed-layer CAPE (1185)
  • PR 1138 - Add 'wide' and 'most_cape' options for LFC/EL, options for CAPE (862)
  • PR 1081 - METAR Parsing Tools

In this release 31 pull requests were closed.

0.11.1

18 Oct 17:09
8c1ca0a
Compare
Choose a tag to compare

Version 0.11.1 (2019/10/18)

Highlights

  • Fixed compatibility with XArray v0.14
  • Fixed several bugs in sounding calculations
  • Fixed units requirement on divergence calculation
  • Added link to Python gallery in docs sidebar
  • Fixed issue with pint and masked arrays

Issues Closed

In this release 8 issues were closed.

Pull Requests Merged

  • PR 1210 - avoid pint trouble with np.asarray
  • PR 1206 - Quick fix for test_narr_example_variable_without_grid_mapping test (broken by xarray v0.14)
  • PR 1204 - Fix GiniFile import of xarray FrozenDict
  • PR 1202 - Fix LFC problem and set CIN to 0 if positive (1190)
  • PR 1200 - Add support for grids when surface is LCL
  • PR 1197 - fix divergence unit requirement (1196)
  • PR 1194 - Add NSF acknowledgement (1193)
  • PR 1192 - Fix precision issue with interpolation in profile helper (1187)
  • PR 1191 - MNT: Change wheel directory on Travis
  • PR 1189 - Add link to Python Gallery in sidebar (1186)
  • PR 1188 - Allow PW calculation when NaNs present (1184)

In this release 11 pull requests were closed.