MetPy is a collection of tools in Python for reading, visualizing and performing calculations with weather data.

Overview

MetPy

MetPy Logo Unidata Logo

License Gitter PRs Welcome

Latest Docs PyPI Package Conda Package PyPI Downloads Conda Downloads

PyPI Tests Conda Tests Code Coverage Status Codacy Badge Code Climate

MetPy is a collection of tools in Python for reading, visualizing and performing calculations with weather data.

MetPy follows semantic versioning in its version number. This means that any MetPy 1.x release will be backwards compatible with an earlier 1.y release. By "backward compatible", we mean that correct code that works on a 1.y version will work on a future 1.x version.

For additional MetPy examples not included in this repository, please see the Unidata Python Gallery.

We support Python >= 3.7.

Need Help?

Need help using MetPy? Found an issue? Have a feature request? Checkout our support page.

Important Links

Dependencies

Other required packages:

  • Numpy
  • Scipy
  • Matplotlib
  • Pandas
  • Pint
  • Xarray

There is also an optional dependency on the pyproj library for geographic projections (used with cross sections, grid spacing calculation, and the GiniFile interface).

See the installation guide for more information.

Code of Conduct

We want everyone to feel welcome to contribute to MetPy and participate in discussions. In that spirit please have a look at our Code of Conduct.

Contributing

Imposter syndrome disclaimer: We want your help. No, really.

There may be a little voice inside your head that is telling you that you're not ready to be an open source contributor; that your skills aren't nearly good enough to contribute. What could you possibly offer a project like this one?

We assure you - the little voice in your head is wrong. If you can write code at all, you can contribute code to open source. Contributing to open source projects is a fantastic way to advance one's coding skills. Writing perfect code isn't the measure of a good developer (that would disqualify all of us!); it's trying to create something, making mistakes, and learning from those mistakes. That's how we all improve, and we are happy to help others learn.

Being an open source contributor doesn't just mean writing code, either. You can help out by writing documentation, tests, or even giving feedback about the project (and yes - that includes giving feedback about the contribution process). Some of these contributions may be the most valuable to the project as a whole, because you're coming to the project with fresh eyes, so you can see the errors and assumptions that seasoned contributors have glossed over.

For more information, please read the see the contributing guide.

Philosophy

The space MetPy aims for is GEMPAK (and maybe NCL)-like functionality, in a way that plugs easily into the existing scientific Python ecosystem (numpy, scipy, matplotlib). So, if you take the average GEMPAK script for a weather map, you need to:

  • read data
  • calculate a derived field
  • show on a map/skew-T

One of the benefits hoped to achieve over GEMPAK is to make it easier to use these routines for any meteorological Python application; this means making it easy to pull out the LCL calculation and just use that, or re-use the Skew-T with your own data code. MetPy also prides itself on being well-documented and well-tested, so that on-going maintenance is easily manageable.

The intended audience is that of GEMPAK: researchers, educators, and any one wanting to script up weather analysis. It doesn't even have to be scripting; all python meteorology tools are hoped to be able to benefit from MetPy. Conversely, it's hoped to be the meteorological equivalent of the audience of scipy/scikit-learn/skimage.

Comments
  • Generalize vorticity (and related functions) to allow for map projections

    Generalize vorticity (and related functions) to allow for map projections

    Some MetPy functions, such as gradient and advection, allow the user to supply arrays of deltas rather than a single value, but vorticity (and its relatives) does not. Vorticity is more complicated since derivatives of the "map factors" are also required, but it should be doable.

    Here is the necessary computation according to the GEMPAK documentation (Appendix B2): equation

    Since the map factors (m_x and m_y) are equivalent to the "nominal" grid spacing (\partial x and \partial y in the above equation) divided by the actual delta, an additional "nominal_delta" argument to vorticity would allow for the map factors to be computed. Since the WRF model provides the map factors in its output, allowing the map factors (and the nominal grid spacing) as optional arguments to vorticity in lieu of deltas would be useful as well.

    Type: Enhancement Area: Calc 
    opened by sgdecker 51
  • Derivatives & map factors

    Derivatives & map factors

    This is a draft to expand @jthielen's implementation (drafted separately #893) for derivatives with support for map factors and the associated machinery to enable calculating (or providing) those map factors. These should be the minimum commits needed to test vorticity calculations on most well-described xarray dataarrays. We will be using this draft for expanding tests/validation and covered functions, unbreaking the preprocessing, and cleaning up the implementation for inclusion in 1.4 this week.

    Type: Enhancement Area: Calc Area: Projections Area: Xarray 
    opened by dcamron 34
  • NEXRAD Level 2 AssertionError

    NEXRAD Level 2 AssertionError

    I keep getting

    File "C:\Anaconda3\lib\site-packages\metpy\io\nexrad.py", line 631, in _check_size 'but got {}'.format(msg_hdr.msg_type, size, hdr_size)) AssertionError: Message type 2 should be 80 bytes but got 25292

    When converting to PNG using this method:

    https://unidata.github.io/MetPy/latest/examples/formats/NEXRAD_Level_2_File.html#sphx-glr-examples-formats-nexrad-level-2-file-py

    Any idea why this error keeps popping up?

    Thanks!

    Type: Bug Area: IO 
    opened by rankinstudio 29
  • No padding around text on four_panel example file

    No padding around text on four_panel example file

    When testing the four_panel_map.py example file on Python 2.7.10 and Metpy 0.7 versions on Windows, I can see that there is no padding around text when generating the graphic. I am not sure if this is an issue that is related to Python or Matplotlib software. Or it could be related to the placement of the different plots on the graphic. I could propose some suggestions to improve it if I can solve it. The current module versions used to generate the graphic are:

    matplotlib 2.1.1 numpy 1.14.0 scipy 1.0.0 cartopy 0.15.1

    four_panel

    Area: Examples Type: Enhancement 
    opened by eliteuser26 24
  • Large refactoring and improvement to METAR parser

    Large refactoring and improvement to METAR parser

    Description Of Changes

    • [x] Parser was not dealing well with a lot of weather code fields (like 'FU' for smoke), so restructure just to look for sequences of any of those codes.
    • [x] Add parsed visibility to output data (#1306)
    • [x] Put remarks in output data (#1306)
    • [x] Improve tests to check more fields
    • Significantly refactored METAR parser to reduce duplicated code and simplify conversion of parsed fields to final values
    • Fixed wind values when report contains them in m/s
    • Test suite now has a bunch of METARs explicitly checked for all fields (and driving modifications to parser)
    • Test suite also has some tests that check counts of parsed (non-NaN) fields
    • Many tweaks to PEG file to increase the reports that the parser can handle
      • Oddities
      • Variable visibility (not output)
      • Full runway visibility (not output)
      • More weather codes
    • Fixed our handling of plotting/mapping weather symbols to allow for alternates (e.g. rain vs. snow + TS) and "unknown precipitation" (UP) from automated stations
    • Tweaked the value for quite a few weather codes based on the WMO handbook

    With all that, most of the gains in lines of code are in the actual generated parser. Outside of that, metar.py got shorter by ~200 lines--and test_metar.py got longer by a similar amount. This is a good thing IMO.

    Checklist

    • [x] Closes #1951
    • [x] Closes #1306
    • [x] Tests added
    • [x] Fully documented
    Type: Bug Type: Enhancement Area: IO 
    opened by dopplershift 23
  • Drop support for Python 2.7!

    Drop support for Python 2.7!

    Description Of Changes

    What do you do when it's a Friday afternoon? Drop 2.7!

    In all seriousness, according to our docs, we're dropping 2.7 in "Fall 2019". Given that meteorological (real) fall is here and astronomical fall is 8 days away, this is likely for sure going in 0.12. (Not sure when 0.11 will get out the door, but not sure if we should include this in that or not).

    I'm sure I missed some stuff, so feel free to push commits to this, or review and comment if you have small items to address. There is one open item on #801 that I didn't fix yet, as the comment was vague and I didn't have time to look into it yet.

    Whenever 2.7 is dropped, celebration is in order!

    Checklist

    • [x] Closes #801
    • [x] Fully documented
    Area: Infrastructure Type: Maintenance 
    opened by zbruick 23
  • Xarray + CF + CartoPy Projection Handling

    Xarray + CF + CartoPy Projection Handling

    Here's a first cut at automatically decoding CF projection information using an XArray accessor and making it available conveniently as a CartoPy projection. There are no docs or tests yet, but there is an example using our NARR test data set.

    Open questions:

    1. Naming and organization of everything
    2. Should we require manually activating the XArray accessors (using a function call). A benefit of this would be making sure we only initialize them once.
    3. Anything else labelled TODO
    4. What about providing some easy way to figure out what the x coordinates, etc. are?

    To save everyone the trouble of downloading to try it out (though please do!), here's what the example looks like:

    import cartopy.feature as cfeature
    import matplotlib.pyplot as plt
    import xarray as xr
    
    import metpy.io.xarray  # To ensure accessors are available
    from metpy.testing import get_test_data
    
    ds = xr.open_dataset(get_test_data('narr_example.nc', as_file_obj=False))
    data_var = ds.parse_cf('Temperature')
    
    x = data_var.x
    y = data_var.y
    im_data = data_var.isel(time=0).sel(isobaric=1000.)
    
    fig = plt.figure(figsize=(14, 14))
    ax = fig.add_subplot(1, 1, 1, projection=data_var.cf.cartopy_crs)
    
    ax.imshow(im_data, extent=(x.min(), x.max(), y.min(), y.max()),
              cmap='RdBu', origin='lower' if y[0] < y[-1] else 'upper')
    ax.coastlines(color='tab:green', resolution='10m')
    ax.add_feature(cfeature.LAKES.with_scale('10m'), facecolor='none', edgecolor='tab:blue')
    ax.add_feature(cfeature.RIVERS.with_scale('10m'), edgecolor='tab:blue')
    
    plt.show()
    

    And the result: figure_1

    I've tested this locally with quite a few data sets. Everything coming from GOES-16 (both NOAAPORT and GRB) works fine. Many GRIB2 datasets work fine, with the exception of WW3 and MRMS; those failures are not related to the projection stuff. NARR, HRRR, NAM Alaska, and RTMA Guam are working fine.

    Area: Infrastructure Type: Feature Area: Plots Area: Projections 
    opened by dopplershift 21
  • Log interpolation

    Log interpolation

    Adds ability to interpolate along a given axis of n-dimensional data to log_interp. Fixes #293. Will likely use this in #454 after it has been merged.

    Type: Feature Area: Calc 
    opened by tjwixtrom 20
  • something changed in interpolate.cross_section for curvilinear grids

    something changed in interpolate.cross_section for curvilinear grids

    Now it's returning all NaNs compared to metpy==0.12.2. Unfortunately I do not have a minimal reproducible example at the moment, but any ideas what might have changed since I don't think the release notes mentioned anything about that being changed? I suspect something to do with metpy.parse_cf() which now is yields a coordinate metpy_crs in my xr.Dataset but still testing.

    **curvilinear grid as in 2D lon/lat, 1D x/y

    example code

    import metpy
    from metpy import interpolate
    start= [-59.2, 80]
    end= [ -42.6, 80]
    method = 'nearest'
    ds = ds.metpy.parse_cf()
    cross = interpolate.cross_section(
        ds, start, end, steps=25, interp_type=method
    )
    
    Type: Bug 
    opened by ahuang11 19
  • metpy.calc.thermo mask and data must be the same size

    metpy.calc.thermo mask and data must be the same size

    mb900 = xr.open_dataset("mb900_data.nc")
    sfc_1 = xr.open_dataset("sfc_data.nc")
    sfc_2 = xr.open_dataset("sfc_data2.nc")
    dp_900 = np.load("/nerc/n02/n02/amethyst/npys/Td.npy") #900 hPa dewpoint (calculated using atmos)
    
    ####setting the variables
    sfc_p = np.array(sfc_1.sp) #surface pressure
    sfc_p = sfc_p / 100 #Pa to hPa
    #create an array of same dimensions all set to 900hPa
    pressure_900 = sfc_p.copy()
    pressure_900[:,:] = 900
    
    sfc_t = np.array(sfc_2.t2m) #temperature at surface
    sfc_dp = np.array(sfc_2.d2m) #dewpoint at surface 
    temp_900 = np.array(mb900.t) #teperature at 900hPa
    
    ####combining sfc pressure values and 900 hPa values for the parcel_profile function
    pp_pressure = np.array([sfc_p, pressure_900]) * units.hPa
    pp_temp = np.array([sfc_t, temp_900]) * units.kelvin
    pp_dp = np.array([sfc_dp, dp_900]) * units.kelvin
    
    ####
    parcel_profile = parcel_profile(pp_pressure, pp_temp, pp_dp)
    
    /nerc/n02/n02/amethyst/miniconda3/envs/myenv/lib/python2.7/site-packages/metpy/calc/thermo.py:690: RuntimeWarning: invalid value encountered in log
      val = np.log(e / sat_pressure_0c)
    /nerc/n02/n02/amethyst/miniconda3/envs/myenv/lib/python2.7/site-packages/pint/quantity.py:1403: RuntimeWarning: invalid value encountered in log
      out = uf(*mobjs)
    Traceback (most recent call last):
      File "/var/spool/torque/mom_priv/jobs/65276.rdf-xcat.SC", line 45, in <module>
        parcel_profile = parcel_profile(pp_pressure, pp_temp, pp_dp)
      File "/nerc/n02/n02/amethyst/miniconda3/envs/myenv/lib/python2.7/site-packages/metpy/xarray.py", line 381, in wrapper
        return func(*args, **kwargs)
      File "/nerc/n02/n02/amethyst/miniconda3/envs/myenv/lib/python2.7/site-packages/metpy/calc/thermo.py", line 466, in parcel_profile
        _, _, _, t_l, _, t_u = _parcel_profile_helper(pressure, temperature, dewpt)
      File "/nerc/n02/n02/amethyst/miniconda3/envs/myenv/lib/python2.7/site-packages/metpy/calc/thermo.py", line 527, in _parcel_profile_helper
        press_lcl, temp_lcl = lcl(pressure[0], temperature, dewpt)
      File "/nerc/n02/n02/amethyst/miniconda3/envs/myenv/lib/python2.7/site-packages/metpy/xarray.py", line 381, in wrapper
        return func(*args, **kwargs)
      File "/nerc/n02/n02/amethyst/miniconda3/envs/myenv/lib/python2.7/site-packages/metpy/calc/thermo.py", line 315, in lcl
        xtol=eps, maxiter=max_iters)
      File "/nerc/n02/n02/amethyst/miniconda3/envs/myenv/lib/python2.7/site-packages/scipy/optimize/minpack.py", line 904, in fixed_point
        return _fixed_point_helper(func, x0, args, xtol, maxiter, use_accel)
      File "/nerc/n02/n02/amethyst/miniconda3/envs/myenv/lib/python2.7/site-packages/scipy/optimize/minpack.py", line 853, in _fixed_point_helper
        relerr = _lazywhere(p0 != 0, (p, p0), f=_relerr, fillvalue=p)
      File "/nerc/n02/n02/amethyst/miniconda3/envs/myenv/lib/python2.7/site-packages/scipy/_lib/_util.py", line 54, in _lazywhere
        np.place(out, cond, f(*temp))
      File "/nerc/n02/n02/amethyst/miniconda3/envs/myenv/lib/python2.7/site-packages/numpy/lib/function_base.py", line 1607, in place
        return _insert(arr, mask, vals)
    ValueError: place: mask and data must be the same size
    

    Shape for all of the components is the same (28490, 241, 480) Could someone let me know what I'm doing wrong?

    Area: Calc 
    opened by am-thyst 19
  • Fixing minor LFC bug

    Fixing minor LFC bug

    Adding a fix so that, in the case where the parcel path never intersects the profile, the surface data point is ignored in determining whether the parcel path is ever warmer than the environment (and thus, whether the LFC exists). Currently, in some cases the parcel is identified as warmer at the surface than the environment, resulting in a spurious LFC being identified at the same pressure as the LCL.

    Type: Bug Area: Calc 
    opened by mwilson14 19
  • CI: (deps): Bump sphinx from 4.5.0 to 6.0.0 in /ci

    CI: (deps): Bump sphinx from 4.5.0 to 6.0.0 in /ci

    Bumps sphinx from 4.5.0 to 6.0.0.

    Release notes

    Sourced from sphinx's releases.

    v6.0.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b2

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.3.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.2.3

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.2.2

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.2.1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.2.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.1.1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.1.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.0.2

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.0.1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.0.0

    No release notes provided.

    v5.0.0b1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    Changelog

    Sourced from sphinx's changelog.

    Release 6.0.0 (released Dec 29, 2022)

    Dependencies

    • #10468: Drop Python 3.6 support
    • #10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and Docutils 0.17 support. Patch by Adam Turner

    Incompatible changes

    • #7405: Removed the jQuery and underscore.js JavaScript frameworks.

      These frameworks are no longer be automatically injected into themes from Sphinx 6.0. If you develop a theme or extension that uses the jQuery, $, or $u global objects, you need to update your JavaScript to modern standards, or use the mitigation below.

      The first option is to use the sphinxcontrib.jquery_ extension, which has been developed by the Sphinx team and contributors. To use this, add sphinxcontrib.jquery to the extensions list in conf.py, or call app.setup_extension("sphinxcontrib.jquery") if you develop a Sphinx theme or extension.

      The second option is to manually ensure that the frameworks are present. To re-add jQuery and underscore.js, you will need to copy jquery.js and underscore.js from the Sphinx repository_ to your static directory, and add the following to your layout.html:

      .. code-block:: html+jinja

      {%- block scripts %} {{ super() }} {%- endblock %}

      .. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/

      Patch by Adam Turner.

    • #10471, #10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See :ref:dev-deprecated-apis for details. Patch by Adam Turner.

    • #10901: C Domain: Remove support for parsing pre-v3 style type directives and roles. Also remove associated configuration variables c_allow_pre_v3 and c_warn_on_allowed_pre_v3. Patch by Adam Turner.

    Features added

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    Area: Infrastructure Type: Maintenance 
    opened by dependabot[bot] 0
  • CI: (deps): Bump importlib-resources from 5.10.1 to 5.10.2 in /ci

    CI: (deps): Bump importlib-resources from 5.10.1 to 5.10.2 in /ci

    Bumps importlib-resources from 5.10.1 to 5.10.2.

    Changelog

    Sourced from importlib-resources's changelog.

    v5.10.2

    • #274: Prefer write_bytes to context manager as proposed in gh-100586.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    Area: Infrastructure Type: Maintenance 
    opened by dependabot[bot] 0
  • CI: (deps): Bump numpy from 1.24.0 to 1.24.1 in /ci

    CI: (deps): Bump numpy from 1.24.0 to 1.24.1 in /ci

    Bumps numpy from 1.24.0 to 1.24.1.

    Release notes

    Sourced from numpy's releases.

    v1.24.1

    NumPy 1.24.1 Release Notes

    NumPy 1.24.1 is a maintenance release that fixes bugs and regressions discovered after the 1.24.0 release. The Python versions supported by this release are 3.8-3.11.

    Contributors

    A total of 12 people contributed to this release. People with a "+" by their names contributed a patch for the first time.

    • Andrew Nelson
    • Ben Greiner +
    • Charles Harris
    • Clément Robert
    • Matteo Raso
    • Matti Picus
    • Melissa Weber Mendonça
    • Miles Cranmer
    • Ralf Gommers
    • Rohit Goswami
    • Sayed Adel
    • Sebastian Berg

    Pull requests merged

    A total of 18 pull requests were merged for this release.

    • #22820: BLD: add workaround in setup.py for newer setuptools
    • #22830: BLD: CIRRUS_TAG redux
    • #22831: DOC: fix a couple typos in 1.23 notes
    • #22832: BUG: Fix refcounting errors found using pytest-leaks
    • #22834: BUG, SIMD: Fix invalid value encountered in several ufuncs
    • #22837: TST: ignore more np.distutils.log imports
    • #22839: BUG: Do not use getdata() in np.ma.masked_invalid
    • #22847: BUG: Ensure correct behavior for rows ending in delimiter in...
    • #22848: BUG, SIMD: Fix the bitmask of the boolean comparison
    • #22857: BLD: Help raspian arm + clang 13 about __builtin_mul_overflow
    • #22858: API: Ensure a full mask is returned for masked_invalid
    • #22866: BUG: Polynomials now copy properly (#22669)
    • #22867: BUG, SIMD: Fix memory overlap in ufunc comparison loops
    • #22868: BUG: Fortify string casts against floating point warnings
    • #22875: TST: Ignore nan-warnings in randomized out tests
    • #22883: MAINT: restore npymath implementations needed for freebsd
    • #22884: BUG: Fix integer overflow in in1d for mixed integer dtypes #22877
    • #22887: BUG: Use whole file for encoding checks with charset_normalizer.

    Checksums

    ... (truncated)

    Commits
    • a28f4f2 Merge pull request #22888 from charris/prepare-1.24.1-release
    • f8fea39 REL: Prepare for the NumPY 1.24.1 release.
    • 6f491e0 Merge pull request #22887 from charris/backport-22872
    • 48f5fe4 BUG: Use whole file for encoding checks with charset_normalizer [f2py] (#22...
    • 0f3484a Merge pull request #22883 from charris/backport-22882
    • 002c60d Merge pull request #22884 from charris/backport-22878
    • 38ef9ce BUG: Fix integer overflow in in1d for mixed integer dtypes #22877 (#22878)
    • bb00c68 MAINT: restore npymath implementations needed for freebsd
    • 64e09c3 Merge pull request #22875 from charris/backport-22869
    • dc7bac6 TST: Ignore nan-warnings in randomized out tests
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    Area: Infrastructure Type: Maintenance 
    opened by dependabot[bot] 0
  • CI: (deps): Bump doc8 from 1.0.0 to 1.1.1 in /ci

    CI: (deps): Bump doc8 from 1.0.0 to 1.1.1 in /ci

    Bumps doc8 from 1.0.0 to 1.1.1.

    Release notes

    Sourced from doc8's releases.

    v1.1.1

    Minor Changes

    Bugfixes

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    Area: Infrastructure Type: Maintenance 
    opened by dependabot[bot] 0
  • CI: (deps): Bump coverage from 7.0.0 to 7.0.1 in /ci

    CI: (deps): Bump coverage from 7.0.0 to 7.0.1 in /ci

    Bumps coverage from 7.0.0 to 7.0.1.

    Changelog

    Sourced from coverage's changelog.

    Version 7.0.1 — 2022-12-23

    • When checking if a file mapping resolved to a file that exists, we weren't considering files in .whl files. This is now fixed, closing issue 1511_.

    • File pattern rules were too strict, forbidding plus signs and curly braces in directory and file names. This is now fixed, closing issue 1513_.

    • Unusual Unicode or control characters in source files could prevent reporting. This is now fixed, closing issue 1512_.

    • The PyPy wheel now installs on PyPy 3.7, 3.8, and 3.9, closing issue 1510_.

    .. _issue 1510: nedbat/coveragepy#1510 .. _issue 1511: nedbat/coveragepy#1511 .. _issue 1512: nedbat/coveragepy#1512 .. _issue 1513: nedbat/coveragepy#1513

    .. _changes_7-0-0:

    Commits
    • c5cda3a docs: releases take a little bit longer now
    • 9d4226e docs: latest sample HTML report
    • 8c77758 docs: prep for 7.0.1
    • da1b282 fix: also look into .whl files for source
    • d327a70 fix: more information when mapping rules aren't working right.
    • 35e249f fix: certain strange characters caused reporting to fail. #1512
    • 152cdc7 fix: don't forbid plus signs in file names. #1513
    • 31513b4 chore: make upgrade
    • 873b059 test: don't run tests on Windows PyPy-3.9
    • 5c5caa2 build: PyPy wheel now installs on 3.7, 3.8, and 3.9. #1510
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    Area: Infrastructure Type: Maintenance 
    opened by dependabot[bot] 0
  • Use `help` parameter for traits rather than setting __doc__

    Use `help` parameter for traits rather than setting __doc__

    Currently all the traits in the simplified plotting interface are documented by setting the __doc__ attribute. Traits have a help parameter in the constructor that we can use instead, and with traitlets 5.8.0, this now maps to the __doc__ attribute.

    We should update, though we should check on whether there are other impacts of this beyond just building our docs (e.g. in jupyter environments). If there are jupyter ramifications, we probably want to wait a bit before making 5.8.0 our minimum version.

    Type: Maintenance Area: Docs good first issue 
    opened by dopplershift 0
Releases(v1.4.0)
  • v1.4.0(Dec 23, 2022)

    Highlights

    • Fully projection/spherical-aware spatial derivative calculations (e.g. vorticity, divergence)
    • Added calculations for SWEAT index, Convective Condensation Level (CCL), and convective temperature
    • ArrowPlot and RasterPlot added to the simplified plotting interface, as well as other enhancements to the simplified plotting interface
    • Many more examples in docstrings and example gallery
    • Improve integration with other libraries that use Pint for unit-handling
    • Converted GINI support to work as a proper xarray backend

    New Features 🎉

    • add declarative layer attributes control by @kgoebber in https://github.com/Unidata/MetPy/pull/2425
    • add accessor convert to base units by @kgoebber in https://github.com/Unidata/MetPy/pull/2422
    • Adds ArrowPlot to declarative by @kgoebber in https://github.com/Unidata/MetPy/pull/2644
    • Adding Raster Plot functionality by @nmartinez233 in https://github.com/Unidata/MetPy/pull/2587
    • add left and right title option by @kgoebber in https://github.com/Unidata/MetPy/pull/2645
    • add 2D calculation examples by @kgoebber in https://github.com/Unidata/MetPy/pull/2628
    • Add SWEAT Index calculate function. by @C2oWisComing in https://github.com/Unidata/MetPy/pull/2580
    • Implement convective condensation level (CCL) by @Z-Richard in https://github.com/Unidata/MetPy/pull/2550

    Enhancements 😄

    • Update media page by @dopplershift in https://github.com/Unidata/MetPy/pull/2428
    • Improve the docs for Bunkers storm motion by @dopplershift in https://github.com/Unidata/MetPy/pull/2503
    • Add docstring examples for thickness_hydrostatic by @Z-Richard in https://github.com/Unidata/MetPy/pull/2530
    • DOCS: Add numerous calculation examples by @kgoebber in https://github.com/Unidata/MetPy/pull/2588
    • DOCS: create .magnitude tutorial by @Z-Richard in https://github.com/Unidata/MetPy/pull/2655
    • Add mean pressure weighted equation by @Daviology38 in https://github.com/Unidata/MetPy/pull/2144
    • Add numerous sounding examples by @kgoebber in https://github.com/Unidata/MetPy/pull/2629
    • Clarify meaning of bottom_up_search by @dopplershift in https://github.com/Unidata/MetPy/pull/2696
    • Enable sphinx nitpicky by @zbruick in https://github.com/Unidata/MetPy/pull/1147
    • Use Pint Application Registry by @dopplershift in https://github.com/Unidata/MetPy/pull/2272
    • Update GINI Xarray support by @dopplershift in https://github.com/Unidata/MetPy/pull/2635
    • Add axis labels to some sounding examples by @dopplershift in https://github.com/Unidata/MetPy/pull/2717
    • Improve the docs for absolute_momentum by @dopplershift in https://github.com/Unidata/MetPy/pull/2735
    • Add vertical_dim to several index calculations by @dopplershift in https://github.com/Unidata/MetPy/pull/2744
    • DOC: Add links to BAMS article 🎉 by @dopplershift in https://github.com/Unidata/MetPy/pull/2771
    • Change default SPECI parsing by @nawendt in https://github.com/Unidata/MetPy/pull/2819
    • Derivatives & map factors by @dcamron in https://github.com/Unidata/MetPy/pull/2743

    Bugs Fixed 🐛

    • DOC: switch order of Parameters in specific_humidity_from_dewpoint by @raybellwaves in https://github.com/Unidata/MetPy/pull/2421
    • fix isentropic example by @kgoebber in https://github.com/Unidata/MetPy/pull/2424
    • Fix value mapper for NEXRAD DPR product by @dopplershift in https://github.com/Unidata/MetPy/pull/2442
    • TEST: Collapse the NIDS tests together by @dopplershift in https://github.com/Unidata/MetPy/pull/2447
    • adds RGB image ability to declarative by @kgoebber in https://github.com/Unidata/MetPy/pull/2469
    • catch metar visibility with zero denominator by @akrherz in https://github.com/Unidata/MetPy/pull/2653
    • Fix truncated text and decode SPCL obs by @nawendt in https://github.com/Unidata/MetPy/pull/2658
    • DOC: Fix artifact in NEXRAD level 2 example by @dopplershift in https://github.com/Unidata/MetPy/pull/2668
    • DOC: Correct mixed_layer_cape_cin example by @dopplershift in https://github.com/Unidata/MetPy/pull/2659
    • Fix resolution of grids generated by interpolate by @dopplershift in https://github.com/Unidata/MetPy/pull/2674
    • Add metadata to output of gdxarray by @sgdecker in https://github.com/Unidata/MetPy/pull/2691
    • fix mixing lines keyword args bug by @AndrewLoeppky in https://github.com/Unidata/MetPy/pull/2326
    • set default METAR year, month from UTC date by @akrherz in https://github.com/Unidata/MetPy/pull/2701
    • Interpolate broadcasting by @dopplershift in https://github.com/Unidata/MetPy/pull/2728
    • Improve default BarbPlot zorder by @dopplershift in https://github.com/Unidata/MetPy/pull/2752
    • Fix ContourPlot default linestyle by @dopplershift in https://github.com/Unidata/MetPy/pull/2751
    • Fix Natural Neighbor Verification example by @dopplershift in https://github.com/Unidata/MetPy/pull/2761
    • Parse 1/16SM visibility in METARs by @dopplershift in https://github.com/Unidata/MetPy/pull/2808
    • Ensure degree units by default for lat/lon in xarray by @dopplershift in https://github.com/Unidata/MetPy/pull/2852

    Other Changes

    • Fix linkcheck by @dopplershift in https://github.com/Unidata/MetPy/pull/2433
    • MNT: Tweak Dependabot config by @dopplershift in https://github.com/Unidata/MetPy/pull/2477
    • Fix image tests by @dopplershift in https://github.com/Unidata/MetPy/pull/2492
    • Fix compatibility with future Pint by @dopplershift in https://github.com/Unidata/MetPy/pull/2496
    • Update numpydoc link by @dcamron in https://github.com/Unidata/MetPy/pull/2501
    • Remove "united" as meaning "having units" by @dopplershift in https://github.com/Unidata/MetPy/pull/2432
    • Ignore EHP heat index reference in link check by @dcamron in https://github.com/Unidata/MetPy/pull/2528
    • Add missing CF projection variable to test file by @dopplershift in https://github.com/Unidata/MetPy/pull/2531
    • Code changes using azimuth_range_to_lat_lon by @nmartinez233 in https://github.com/Unidata/MetPy/pull/2538
    • Update links to Xarray docs by @dopplershift in https://github.com/Unidata/MetPy/pull/2617
    • Update link to THREDDS server by @dopplershift in https://github.com/Unidata/MetPy/pull/2623
    • rebuild metar_parser with canopy 0.4.0 by @akrherz in https://github.com/Unidata/MetPy/pull/2654
    • Fix inconsistent R_v and Cp_l unit definitions by @dcamron in https://github.com/Unidata/MetPy/pull/2656
    • MNT: Update SkewXAxis for Matplotlib 3.6 by @dopplershift in https://github.com/Unidata/MetPy/pull/2667
    • DOC: Improve some formatting issues in docstrings by @dopplershift in https://github.com/Unidata/MetPy/pull/2673
    • Bump image test tolerance for osx-arm64 by @dcamron in https://github.com/Unidata/MetPy/pull/2688
    • Update GEMPAK comparison guide by @dopplershift in https://github.com/Unidata/MetPy/pull/2689
    • Point nonmult units link to pint stable by @dcamron in https://github.com/Unidata/MetPy/pull/2727
    • Update reference and link for WMO#8 manual (Fixes #2737) by @dopplershift in https://github.com/Unidata/MetPy/pull/2738
    • Update link for Pint temperature unit docs by @dopplershift in https://github.com/Unidata/MetPy/pull/2767
    • DOC: Update link to WMO8 again by @dopplershift in https://github.com/Unidata/MetPy/pull/2781
    • Bump image threshold by @dopplershift in https://github.com/Unidata/MetPy/pull/2805
    • Conditionally define percent unit by @dopplershift in https://github.com/Unidata/MetPy/pull/2813
    • MNT: Update link for TDS by @dopplershift in https://github.com/Unidata/MetPy/pull/2851

    New Contributors

    • @Z-Richard made their first contribution in https://github.com/Unidata/MetPy/pull/2530
    • @nmartinez233 made their first contribution in https://github.com/Unidata/MetPy/pull/2538
    • @AndrewLoeppky made their first contribution in https://github.com/Unidata/MetPy/pull/2326
    • @Daviology38 made their first contribution in https://github.com/Unidata/MetPy/pull/2144

    Full Changelog: https://github.com/Unidata/MetPy/compare/v1.3.0...v1.4.0

    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Jul 5, 2022)

    This is a bug fix release for 1.3.0.

    Highlights

    • Fixed Plotting RGB imagery with the simplified plotting interface
    • Fixed scaling of values for NEXRAD DPR (Digital Precipitation Rate) products
    • Fixed compatibility with future releases of Pint
    • Various doc and example fixes

    Bugs Fixed 🐛

    • DOC: switch order of Parameters in specific_humidity_from_dewpoint (backport) by @github-actions in https://github.com/Unidata/MetPy/pull/2561
    • fix isentropic example (backport) by @github-actions in https://github.com/Unidata/MetPy/pull/2564
    • Fix value mapper for NEXRAD DPR product (backport) by @github-actions in https://github.com/Unidata/MetPy/pull/2567
    • TEST: Collapse the NIDS tests together (backport) by @github-actions in https://github.com/Unidata/MetPy/pull/2568
    • adds RGB image ability to declarative (backport) by @github-actions in https://github.com/Unidata/MetPy/pull/2569

    Other Changes

    • Remove "united" as meaning "having units" (backport) by @github-actions in https://github.com/Unidata/MetPy/pull/2566
    • Fix compatibility with future Pint (backport) by @github-actions in https://github.com/Unidata/MetPy/pull/2570
    • Update numpydoc link (backport) by @github-actions in https://github.com/Unidata/MetPy/pull/2572
    • Add missing CF projection variable to test file (backport) by @github-actions in https://github.com/Unidata/MetPy/pull/2573
    • Update media page (backport) by @github-actions in https://github.com/Unidata/MetPy/pull/2565
    • Improve the docs for Bunkers storm motion (backport) by @github-actions in https://github.com/Unidata/MetPy/pull/2571

    Full Changelog: https://github.com/Unidata/MetPy/compare/v1.3.0...v1.3.1

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Apr 6, 2022)

    Highlights

    • Dropped support for Python 3.7
    • Station information lookup now better documented works like a standard Python mapping
    • Fixed problems with parcel profile functions and repeated pressure values
    • Fixed some CF coordinate and unit identification bugs
    • Fix for reading NEXRAD data from S3 with newer versions of Botocore
    • Fixed wet_bulb_temperature to accept NumPy scalars
    • Fixed problem using smoothing and unit conversion together in simplified plotting interface

    Enhancements 😄

    • Make StationLookup a proper Mapping by @dopplershift in https://github.com/Unidata/MetPy/pull/2398
    • Doc/warning improvements by @dopplershift in https://github.com/Unidata/MetPy/pull/2415

    Bugs Fixed 🐛

    • DOC: Update README installation guide URL by @mathomp4 in https://github.com/Unidata/MetPy/pull/2306
    • Retaining global attrs on MetPyDatasetAccessor.quantify() by @lpilz in https://github.com/Unidata/MetPy/pull/2312
    • Update coord criteria regex so that X prefixes or _ infixes don't break it by @jthielen in https://github.com/Unidata/MetPy/pull/2347
    • Miscellaneous Maintenance by @dopplershift in https://github.com/Unidata/MetPy/pull/2348
    • Fix unit power regex for parentheses handling by @jthielen in https://github.com/Unidata/MetPy/pull/2380
    • NEXRAD misc updates by @dopplershift in https://github.com/Unidata/MetPy/pull/2381
    • Fix wet_bulb_temperature for NumPy scalars by @jthielen in https://github.com/Unidata/MetPy/pull/2402
    • Fix declarative smoothing bug by @kgoebber in https://github.com/Unidata/MetPy/pull/2385
    • Drop repeat pressures in moist region of parcel_profile by @dcamron in https://github.com/Unidata/MetPy/pull/2412

    Other Changes

    • Drop Python 3.7 by @dopplershift in https://github.com/Unidata/MetPy/pull/2317
    • Bump test tolerance by @dopplershift in https://github.com/Unidata/MetPy/pull/2328
    • Bump scipy and pandas minimum versions by @dopplershift in https://github.com/Unidata/MetPy/pull/2329
    • TEST: Update reference image (Fixes #2391) by @dopplershift in https://github.com/Unidata/MetPy/pull/2395
    • Update Codacy link in the dev docs by @dopplershift in https://github.com/Unidata/MetPy/pull/2405
    • DOC: add import to wind_components doc string example by @raybellwaves in https://github.com/Unidata/MetPy/pull/2300

    New Contributors

    • @mathomp4 made their first contribution in https://github.com/Unidata/MetPy/pull/2306
    • @lpilz made their first contribution in https://github.com/Unidata/MetPy/pull/2312

    Full Changelog: https://github.com/Unidata/MetPy/compare/v1.2.0...v1.3.0

    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Jan 23, 2022)

    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 🎉

    • Add K Index calculate function. by @C2oWisComing in https://github.com/Unidata/MetPy/pull/1990
    • SPC convective outlook example by @23ccozad in https://github.com/Unidata/MetPy/pull/2021
    • Add a fixture that provides numpy, masked, and dask array functions by @rpmanser in https://github.com/Unidata/MetPy/pull/1935
    • NHC wind probabilities example by @23ccozad in https://github.com/Unidata/MetPy/pull/2034
    • Add TT, VT and CT calculate function. by @C2oWisComing in https://github.com/Unidata/MetPy/pull/2113

    Enhancements 😄

    • Avoid error when wind and vis groups are in the wrong order by @sgdecker in https://github.com/Unidata/MetPy/pull/2019
    • Documentation equation improvements by @dopplershift in https://github.com/Unidata/MetPy/pull/2035
    • Improve the error message when metpy_crs is missing by @sgdecker in https://github.com/Unidata/MetPy/pull/2056
    • Add note showing real-world case to upper-air example by @sgdecker in https://github.com/Unidata/MetPy/pull/2054
    • Infer name of station ID key in add_station_lat_lon by @sgdecker in https://github.com/Unidata/MetPy/pull/2053
    • Add wind gusts to parsed METAR output by @dopplershift in https://github.com/Unidata/MetPy/pull/2076
    • Fix lifted_index cannot calculate when data at 500 hpa is missing by @C2oWisComing in https://github.com/Unidata/MetPy/pull/2110
    • Doc fixes in kinematics.py by @sgdecker in https://github.com/Unidata/MetPy/pull/2168
    • allow range for contours by @kgoebber in https://github.com/Unidata/MetPy/pull/2152
    • add smoothing for declarative by @kgoebber in https://github.com/Unidata/MetPy/pull/2156
    • Readme Tweaks by @dopplershift in https://github.com/Unidata/MetPy/pull/2206
    • Add zoom interpolation function by @kgoebber in https://github.com/Unidata/MetPy/pull/2155
    • Add description of scale to declarative tutorial by @sgdecker in https://github.com/Unidata/MetPy/pull/2273
    • Refactor moist_lapse by @dopplershift in https://github.com/Unidata/MetPy/pull/2263
    • Validate declarative interface attributes by @sgdecker in https://github.com/Unidata/MetPy/pull/2170

    Bugs Fixed 🐛

    • Swap "See Also" and "Notes" section in docs by @brianlo747 in https://github.com/Unidata/MetPy/pull/2036
    • Clarify degree to which DDT is implemented by @sgdecker in https://github.com/Unidata/MetPy/pull/2048
    • Fix name of time_window attribute in declarative tutorial by @sgdecker in https://github.com/Unidata/MetPy/pull/2058
    • Fix UnboundLocalError in snxarray by @nawendt in https://github.com/Unidata/MetPy/pull/2057
    • Add argument name check in preprocess_and_wrap, and fix dewpoint_from_specific_humidity by @jthielen in https://github.com/Unidata/MetPy/pull/2073
    • Fix broken links in GEMPAK Comparison Guide by @sgdecker in https://github.com/Unidata/MetPy/pull/2085
    • Allow adjacent points in sounding to have the same pressure by @sgdecker in https://github.com/Unidata/MetPy/pull/2089
    • A couple of doc fixes by @dopplershift in https://github.com/Unidata/MetPy/pull/2068
    • Store grid mapping on metpy_crs coord rather than DataArray attrs in GEMPAK reader by @jthielen in https://github.com/Unidata/MetPy/pull/2066
    • Updated URL for beginner issues by @wxman22 in https://github.com/Unidata/MetPy/pull/2114
    • Convert instances of boolean indexing to ndarrays to pass dask tests in basic module by @rpmanser in https://github.com/Unidata/MetPy/pull/2090
    • fix bug 2137 use scale with barbs by @kgoebber in https://github.com/Unidata/MetPy/pull/2140
    • Fix plot_kwargs bug by @kgoebber in https://github.com/Unidata/MetPy/pull/2148
    • Fix incorrect name in Declarative Tutorial by @sgdecker in https://github.com/Unidata/MetPy/pull/2172
    • Correct docs for search_radius in interpolate functions by @dopplershift in https://github.com/Unidata/MetPy/pull/2184
    • Correct array shape typos in natural_neighbor_to_grid by @jthielen in https://github.com/Unidata/MetPy/pull/2216
    • Fix GEMPAK date parsing by @sgdecker in https://github.com/Unidata/MetPy/pull/2231
    • BUG: Fix handling of reference level for moist_lapse (Fixes #2128) by @dopplershift in https://github.com/Unidata/MetPy/pull/2239
    • Update stations.txt by @russ-schumacher in https://github.com/Unidata/MetPy/pull/2274
    • Handle truncated vertical visibility by @sgdecker in https://github.com/Unidata/MetPy/pull/2270
    • Unit support for interpolation functions by @dopplershift in https://github.com/Unidata/MetPy/pull/2271

    Other Changes

    • Denote unused return value as such by @dopplershift in https://github.com/Unidata/MetPy/pull/2026
    • Misc cleanups by @dopplershift in https://github.com/Unidata/MetPy/pull/2029
    • CITATION.cff 1.2.0 by @dcamron in https://github.com/Unidata/MetPy/pull/2143
    • Ejssm citations by @dcamron in https://github.com/Unidata/MetPy/pull/2142
    • Python 3.10 by @dopplershift in https://github.com/Unidata/MetPy/pull/2177
    • run conda tests on python 3.10 by @akrherz in https://github.com/Unidata/MetPy/pull/2214
    • Matplotlib Updates by @dopplershift in https://github.com/Unidata/MetPy/pull/2179
    • Fix linkchecker build by @dopplershift in https://github.com/Unidata/MetPy/pull/2221
    • Ignore flaky AMS meeting link by @dopplershift in https://github.com/Unidata/MetPy/pull/2223
    • DOC: Fix redirecting link (Fixes #2234) by @dopplershift in https://github.com/Unidata/MetPy/pull/2236
    • Reduce warning to a debug log message by @dopplershift in https://github.com/Unidata/MetPy/pull/2241
    • MNT: Update test images by @dopplershift in https://github.com/Unidata/MetPy/pull/2249
    • Sourcery refactored main branch by @sourcery-ai in https://github.com/Unidata/MetPy/pull/1848
    • Replace pytest.warns(None) by @dopplershift in https://github.com/Unidata/MetPy/pull/2245
    • Fix up xarray doc links redirecting by @dopplershift in https://github.com/Unidata/MetPy/pull/2260
    • Math tweaks by @dopplershift in https://github.com/Unidata/MetPy/pull/2261
    • Add __repr__ to TreeNode objects by @sgdecker in https://github.com/Unidata/MetPy/pull/2269
    • support versions like x.y in docs/conf.py by @akrherz in https://github.com/Unidata/MetPy/pull/2291
    • Improve some thermo calculation bottlenecks by refactoring how units are handled by @jthielen in https://github.com/Unidata/MetPy/pull/2064

    New Contributors

    • @C2oWisComing made their first contribution in https://github.com/Unidata/MetPy/pull/1990
    • @brianlo747 made their first contribution in https://github.com/Unidata/MetPy/pull/2036
    • @wxman22 made their first contribution in https://github.com/Unidata/MetPy/pull/2114
    • @russ-schumacher made their first contribution in https://github.com/Unidata/MetPy/pull/2274

    Full Changelog: https://github.com/Unidata/MetPy/compare/v1.1.0...v1.2.0

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Aug 9, 2021)

    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

    • PR 2009 - Clean up some lint in the GEMPAK reader, by @dopplershift
    • PR 2008 - Fix passing degF values to some thermo calculations, by @dopplershift
    • PR 2007 - Fix up Showalter Index calculation, by @dopplershift
    • PR 2006 - ENH: Ignore bad points in reduce_point_density, by @dopplershift
    • PR 2004 - Add check_units to geopotential_to_height, by @dcamron
    • PR 1991 - Create initial CITATION.cff, by @dcamron
    • PR 1989 - DOC: Fix some equations, by @dopplershift
    • PR 1986 - Specify coords as dict rather than tuple of tuples in tests, by @jthielen
    • PR 1978 - Added equation to relative_humidity_from_dewpoint, by @lswenson
    • PR 1977 - Add unit-awareness to azimuth_range_to_lat_lon function, by @kgoebber
    • PR 1973 - Plotting Shapely objects in declarative interface, by @23ccozad
    • PR 1967 - Check that pressure decreases monotonically in parcel calculations, by @sgdecker
    • PR 1956 - Absolute momentum units bug fix, by @23ccozad
    • PR 1953 - Large refactoring and improvement to METAR parser, by @dopplershift
    • PR 1947 - Set up isort, by @dopplershift
    • PR 1943 - Units bug fix for _get_bound_pressure_height, by @23ccozad
    • PR 1942 - Hodograph fixes, by @dopplershift
    • PR 1939 - Codespell, by @dopplershift
    • PR 1937 - Cleaning up analysis warnings, by @dopplershift
    • PR 1934 - Code scanning, by @dopplershift
    • PR 1932 - Update test_declarative.py, by @albernsrya
    • PR 1931 - Update xarray git install for nightly build, by @dopplershift
    • PR 1928 - Improve some import handling, by @dopplershift
    • PR 1926 - More descriptive errors for precipitable_water, by @23ccozad
    • PR 1925 - Improve nightly build logs, by @dopplershift
    • PR 1924 - Refactor dimensionality comparisons to check(), by @23ccozad
    • PR 1921 - Remove any Pint objects from METAR parser output, by @23ccozad
    • PR 1920 - Interpret inverse_flattening = 0 as spherical datum in mapping.py, by @lbunting
    • PR 1914 - Refactor mean_pressure_weighted(), by @23ccozad
    • PR 1913 - CI: Add flake8-continuation to our plugin suite, by @dopplershift
    • PR 1908 - Improved formatting of notes section of METAR parser, by @23ccozad
    • PR 1907 - Region modifiers with '+' or '-' suffix, by @23ccozad
    • PR 1903 - Clean up declarative dir and tab-completion, by @dcamron
    • PR 1899 - Add font size traits to various classes, by @23ccozad
    • PR 1896 - Drop our explicit pillow dependency for sphinx-gallery, by @dcamron
    • PR 1885 - Minor simplifications for the IO code, by @dopplershift
    • PR 1884 - Copy method for declarative interface, by @23ccozad
    • PR 1882 - Clarify environment installation steps in CONTRIBUTING, by @dcamron
    • PR 1879 - Reorganization of declarative syntax, by @kgoebber
    • PR 1876 - fixes bug in issue 1758, by @kgoebber
    • PR 1869 - BUG: Fix unit-handling in heat_index (Fixes #1867), by @dopplershift
    • PR 1866 - Fix assign milestone action, by @dopplershift
    • PR 1861 - Bump minimum dependency NumPy to >=1.17, by @dcamron
    • PR 1842 - Reduce duplication in minimum dependencies, by @dopplershift
    • PR 1841 - Drop support for Python 3.6, by @dopplershift
    • PR 1840 - lazy load station_info only when used #1320, by @akrherz
    • PR 1673 - Adding Showalter Index to Thermo Functions, by @michaelavs
    • PR 1656 - Add GEMPAK IO module, by @nawendt
    • PR 985 - Set module for exported functions., by @dopplershift

    49 pull requests were closed in this release.

    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Apr 28, 2021)

    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

    • PR 1837 - Misc release items, by @dopplershift
    • PR 1836 - CI: Add workflow for managing version listing, by @dopplershift
    • PR 1833 - NEXRAD fixes, by @dopplershift
    • PR 1832 - Fix .metpy.units checking .data for units and loading data into memory, by @dcamron
    • PR 1819 - Fix up internal multiplication by units, by @dopplershift
    • PR 1811 - Fix wet_bulb_temperature with nans, by @dopplershift
    • PR 1810 - Remove stray viridis.tbl file, by @dopplershift
    • PR 1809 - Use HTML API for release note links, by @dopplershift
    • PR 1796 - MNT: remove upper bound on pyproj version, by @akrherz
    • PR 1738 - address numpy 1.20 deprecation of np.{bool,int,float}, by @akrherz
    • PR 1736 - use set_yticklabels in examples/meteogram_metpy, by @akrherz
    • PR 1732 - Fix copyright in docs, by @dopplershift
    • PR 1725 - Update for rename of master branch to main, by @dopplershift
    • PR 1681 - fix declarative contour plotting of global data, by @kgoebber
    • PR 1680 - Reduce the size of the "new" and "old" icons, by @ddirks
    • PR 1679 - Non-pressure weighted bunkers storm motion, by @aschueth
    • PR 1675 - MNT: Update readme for 1.0 release, by @dopplershift
    • PR 1651 - Remove misleading fallback to lat/lon CRS when only 2D lat/lon present, by @jthielen
    • PR 1639 - fix bug in issue 1635, by @kgoebber

    In this release 19 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Dec 22, 2020)

    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

    • PR 1627 - Standardize constant and thermophysical properties, by @dcamron
    • PR 1625 - DataArray Fixes, by @dopplershift
    • PR 1618 - Finish off upgrade guide, by @dopplershift
    • PR 1617 - Enable flake8 simplify, by @dopplershift
    • PR 1614 - Improve the citation information , by @dopplershift
    • PR 1612 - Handle changed functions in check_units decorator, by @dopplershift
    • PR 1605 - Redo xarray with MetPy tutorial for 1.0, by @jthielen
    • PR 1598 - New Automation, by @dopplershift
    • PR 1595 - fixes plotting error in declarative with hires data, by @kgoebber
    • PR 1592 - take float or int for figsize in declarative, by @kgoebber
    • PR 1585 - Windows development fixes, by @dopplershift
    • PR 1580 - Fix get_layer for float32 data again, by @dopplershift
    • PR 1579 - Fixes and improvements for wet_bulb_temperature, by @dopplershift
    • PR 1578 - BUG: Fix for xarray master, by @dopplershift
    • PR 1577 - Make CartoPy import more robust, by @dopplershift
    • PR 1576 - Fix PlotObs with units + formatter, by @dopplershift
    • PR 1575 - Fix xarray support in advection, by @dopplershift
    • PR 1573 - Python 3.9 support, by @dopplershift
    • PR 1569 - declarative tutorial, by @kgoebber
    • PR 1568 - replace data with ds, by @raybellwaves
    • PR 1554 - MNT: Refactor montgomery_streamfunction, by @dopplershift
    • PR 1527 - Update target for v1 since it didn't happen in 2019..., by @MinchinWeb

    In this release 22 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0rc2(Oct 9, 2020)

    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

    In this release 34 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.12.2(Aug 6, 2020)

    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.

    Source code(tar.gz)
    Source code(zip)
  • v0.12.1(Apr 18, 2020)

    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.

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0rc1(Jan 14, 2020)

    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.

    Source code(tar.gz)
    Source code(zip)
  • v0.12.0(Jan 6, 2020)

    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.

    Source code(tar.gz)
    Source code(zip)
  • v0.11.1(Oct 18, 2019)

    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.

    Source code(tar.gz)
    Source code(zip)
  • v0.11.0(Sep 30, 2019)

    Version 0.11 (2019/09/30)

    This is the FINAL RELEASE to support Python 2.7.

    API Changes

    • MetPy's copy of the "viridis" colormap is deprecated. Use it directly from matplotlib instead.
    • Deprecated the tmpk_out argument for isentropic_interpolation; this will be removed in 1.0. Use temperature_out instead.
    • ageostrophic_wind now issues a FutureWarning due to an impending change to its function signature in 1.0--this will change the signature to ageostrophic_wind(heights, u, v, f, dx, dy) for better consistency with the rest of the library. To avoid this warning, import the function with from metpy.future import ageostrophic_wind.
    • Deprecated the bounds argument on Hodograph.plot_colormapped in favor of intervals to improve clarity on how to use the argument.
    • Removed previously deprecated:
      • lat_lon_grid_spacing: use lat_lon_grid_deltas instead
      • cdm module
      • GINIFile.to_dataset()

    Highlights

    • Several SkewT fixes and enhancements, including reworking the transform so that it works in screen space; this helps it work much better on oddly shaped axes. On Matplotlib 3.2, this means that the SkewT maintains sensible data scaling. SkewT by default also now has sensible plot limits.
    • MetPy 0.10.x accidentally picked up a hard dependency on CartoPy, this has been removed
    • Expanded simplified plotting interface with more documentation and support for Barbs
    • Several bug fixes for lcl, el, lfc, and cape_cin
    • No longer require using .metpy.parse_cf() to activate coordinate identification with XArray
    • XArray accessor automatically converts problematic '%' units to 'percent'
    • Added unit support in reduce_point_density
    • wind_direction now supports specifying the convention (either 'to' or 'from') to support oceanographic applications (default remains 'from').
    • Improved numerical stability of geopotential<->height calculations
    • Added parsing of more combinations of weather symbols
    • Added specific_humidity_from_dewpoint, altimeter_to_station_pressure, altimeter_to_sea_level_pressure
    • heat_index now better matches NWS algorithm
    • Added angle_to_direction to convert wind direction in degrees to e.g. 'NE'
    • Added control of mask_undefined on apparent_temperature

    Contributors

    @ahuang11, @akrherz, @jthielen, @kgoebber, @leouieda, @mgrover1, @sgdecker, @tjwixtrom, @zbruick, @jrleeman, and @dopplershift contributed code to this release.

    Issues Closed

    In this release 46 issues were closed.

    Pull Requests Merged

    • PR 1182 - Update Project Layout (1171)
    • PR 1181 - Rearrange CartoPy Imports (1159)
    • PR 1180 - SkewT Updates (60, 296, 1176)
    • PR 1179 - Update PyPI upload
    • PR 1178 - Deprecate the viridis colortable (1136)
    • PR 1175 - Add xarray module to Reference Guide (1156)
    • PR 1172 - Return input temperature units for LCL/LFC/EL temperature, disallow LFC if EL below LCL (1170, 1167)
    • PR 1162 - Add handles to SkewT special lines (991, 991)
    • PR 1161 - Update standard atmosphere reference to U.S. 1976 (420)
    • PR 1160 - Switch versioning to setuptools_scm from versioneer (1110)
    • PR 1158 - Add a Starting Guide to the docs (422)
    • PR 1157 - Update citation information (Fixes #1154) (1154)
    • PR 1152 - Update parse_angle to allow any array-like object (1150)
    • PR 1151 - Add Mesonet StationPlot example (906)
    • PR 1149 - Add zorder for SkewT barbs and SkewT units image test (296)
    • PR 1144 - Updates to pint/xarray master branch (and xarray v0.13) compatability (1115, 1111)
    • PR 1143 - Allow lists of variable names in parse_cf
    • PR 1142 - Refactor xarray axis search to resolve dataset shared coordinate issue (1124)
    • PR 1141 - Add Pandas dependency
    • PR 1140 - Docstring updates and increased use of check_units
    • PR 1137 - Cleanups and maintenance
    • PR 1133 - Add convention to wind_direction (954)
    • PR 1132 - Add unit support for reduce_point_density (1120)
    • PR 1131 - Unindent section titles in metpy.calc docs to prevent sphinx from failing
    • PR 1130 - Handle Pandas time indices within StationPlots (957)
    • PR 1128 - Add FutureWarning to ageostrophic_wind for variable reorder
    • PR 1126 - Deprecate tmpk_out in favor of temperature_out (1107)
    • PR 1125 - Rework SkewT tranform (209)
    • PR 1118 - plot_colormapped update for Hodograph
    • PR 1116 - Wrap check_axis unit checking to not fail on bad unit (1092)
    • PR 1109 - Include LCL in MUCIN calculations if parcel starts below LCL (1108)
    • PR 1106 - Updates for testing
    • PR 1105 - Tweak docs
    • PR 1103 - More links to Python Gallery
    • PR 1102 - Drop central_longitude from mercator projection (1101)
    • PR 1100 - add pycodestyle settings to setup.cfg
    • PR 1099 - correct mask_undefined apparent_temperature logic
    • PR 1098 - modify heat_index to replicate NWS algorithm (1096)
    • PR 1097 - Metar Altimeter Calculations
    • PR 1095 - allow mask_undefined control on apparent_temperature calc
    • PR 1093 - Specific Humidity From Dewpoint (791)
    • PR 1091 - Force x and y to be np.arrays within StationPlot
    • PR 1088 - MNT: suppress pytest-mpl warning for unregistered marker
    • PR 1084 - MNT: Contributors, license, code owners
    • PR 1082 - BUG: Fixup geopotential<->height calculation (Fixes #1075)
    • PR 1080 - DOC: Clarify x-axis variables in cross section example
    • PR 1079 - Vendor internal imports from xarray.core in xarray.py
    • PR 1076 - Add formulas to geopotential functions in docs and correct reference
    • PR 1066 - Fix docstring for vertical velocity functions to render equations
    • PR 1065 - Xarray: Add warning if lat/lon is assumed for projection (1039)
    • PR 1063 - Remove components due for removal in 0.11 (726)
    • PR 1062 - Calculate intersections with log-p interpolation (LFC, EL, CAPE/CIN) (932)
    • PR 1061 - Interpolate_to_grid doc update (1060)
    • PR 1059 - Provide identification of multiple LFCs and ELs (992)
    • PR 1058 - xarray Coordinate Identification Refactor (1051, 1030)
    • PR 1057 - Units: convert '%' to 'percent' for within the xarray MetPy accessor (1038)
    • PR 1056 - Adds barb plots to declarative
    • PR 1055 - Prevent an EL below a LCL
    • PR 1054 - Updated deprecated function in matplotlib 3.1
    • PR 1052 - Documentation update for pressure in profile calculations
    • PR 1046 - first pass at better docs for declarative
    • PR 1040 - MNT: fix flake8 errors
    • PR 1036 - Update potential_vorticity_baroclinic() docstring (1035)
    • PR 1034 - Pandas support for interpolate grid (1029)
    • PR 1033 - Update Advanced Sounding doc to explain why 0 index is chosen
    • PR 1026 - add functionality to declarative plotting
    • PR 1024 - MNT: Update doc8 configuration
    • PR 1023 - Fix poor assumptions in lfc() logic
    • PR 1022 - Fix crash with mixed-layer LFC calculation (945)
    • PR 1021 - Adds a function to linearly interpolate to level
    • PR 1020 - Fix LFC calculation when positive area exists below LCL
    • PR 1019 - Fix RST style links in the Contributing Guide
    • PR 1017 - updates docs for latitude units
    • PR 1013 - MNT: Disallow pyproj 2.0.0
    • PR 1012 - Add roadmap document
    • PR 999 - Pin pint <= 0.8.1
    • PR 994 - Adds more combinations for wx symbols
    • PR 853 - Add angle_to_dir to convert angles to nearest direction

    In this release 78 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.10.2(Jul 6, 2019)

    Version 0.10.2 (2019/07/06)

    Highlights

    • Fix for import error with xarray 0.12.2
    • Fixes for pint 0.9
    • Fixes skewT ticks issue with matplotlib 3.1
    • Fixes for interpolation with scipy 1.3.0
    • Allows using any version of pooch
    • Requires numpy >= 1.12.0

    Issues Closed

    In this release 4 issues were closed.

    Pull Requests Merged

    • PR 1087 - Fix pint 0.9 errors from units.wraps and iterable (997)
    • PR 1085 - Matplotlib 3.1 fixes
    • PR 1078 - Conditional import of the DatetimeAccessor due to xarray update (1077)
    • PR 1053 - Fix Scipy 1.3 not-C-contiguous error (1043)
    • PR 1045 - migrate mpl.cbook.iterable to numpy.iterable
    • PR 1031 - allow any pooch >= 0.1 to be used

    In this release 6 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.10.0(Jan 6, 2019)

    Version 0.10 (2019-01-06)

    API Changes

    • potential_vorticity_baroclinic was changed to take all 3D variables, with dimensions ordered: vertical, y, x.

    Highlights

    • MetPy has gained a simplified plotting interface designed to mimic that of GEMPAK. It uses a handful of objects on which users set attributes to values to control the plot, requiring data in an xarray DataArray or Dataset. See MetPy's plotting examples for more information.
    • MetPy's xarray accessor now has its own versions of loc and sel that accept unit-ed values.
    • Added an n-point soothing function
    • moist_lapse and dry_lapse now accept an arbitrary starting (reference) pressure value.
    • potential_vorticity_baroclinic now works with data either on isobaric or isentropic surfaces.
    • MetPy now has state borders that match the boundaries of the county borders.
    • SkewT instances can now be created at an arbitrary rectangular location within a figure.
    • MetPy's calculations have been adjusted so that the values of constants can be overridden by changing the values in the constants module.

    Contributors

    @akrherz, @JoyMonteiro, @jthielen, @kgoebber, @mendezr, @tsupinie, @vardan10, @jrleeman, and @dopplershift contributed code to this release.

    Issues Closed

    In this release 11 issues were closed.

    Pull Requests Merged

    • PR 990 - Make necessary coordinate information for cross sections clearer
    • PR 989 - Declarative/simplified plotting
    • PR 986 - Change axis-tracking attribute from axis to _metpy_axis (981)
    • PR 984 - Update requirements (813)
    • PR 979 - Clarify wind_components docs (969)
    • PR 978 - relax pooch requirement to >=0.1 (977)
    • PR 976 - Change XArray projection warning to a logged message
    • PR 975 - Fix interpolation tests for SciPy 1.2
    • PR 971 - Add unit- and axis-aware selection to the metpy accessors (970)
    • PR 967 - fix #960 and add test function
    • PR 964 - Skew-T adiabat reference pressure (85)
    • PR 963 - Update PV calc for isobaric (895)
    • PR 962 - Miscellaneous Cleanup
    • PR 959 - Add Skew-T axes at arbitrary locations
    • PR 958 - MNT: Make io module docstring conform to standards
    • PR 956 - MNT: Remove use of numpy.asscalar
    • PR 953 - Test cleanup
    • PR 952 - address pytest fixture warnings emitted by pytest==3.8.1
    • PR 951 - Marginally increase testing coverage
    • PR 950 - Remove edgecolor from county example
    • PR 944 - Adds n point smoothing function
    • PR 940 - Python37 (939)
    • PR 938 - Add instructions for adding a file to the cache
    • PR 937 - Adds US State borders at same scales as counties
    • PR 930 - Access constants via module

    In this release 25 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.9.2(Sep 29, 2018)

    Version 0.9.2 (2018/09/29)

    Hightlights

    • Set default edge color for county borders
    • Fix internal use of deprecated function
    • Update required version of pooch
    • Fix example and test issues with Matplotlib 3.0

    Issues Closed

    • Issue 935 - Set default edge color on counties
    • Issue 934 - Add CI check for MetPyDeprecationWarning (PR 948)
    • Issue 933 - pooch.create can fail to create cache directory, bombing out metpy/cbook.py

    In this release 3 issues were closed.

    Pull Requests Merged

    • PR 948 - Deprecation check (934)
    • PR 947 - Update for requirements
    • PR 946 - Replace deprecated interp with interpolate_1d

    In this release 3 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.9.1(Aug 27, 2018)

  • v0.9.0(Aug 27, 2018)

    Version 0.9 (2018/08/27)

    API Changes

    • Renamed get_wind_speed to wind_speed; the old name is still available but is deprecated and will be removed in 0.12
    • Renamed get_wind_dir to wind_direction; the old name is still available but is deprecated and will be removed in 0.12
    • Renamed get_wind_components to wind_components; the old name is still available but is deprecated and will be removed in 0.12

    Highlights

    • Added support for cross-sections along arbitrary lat/lon paths
    • Added parcel_profile_with_lcl to compute the parcel profile and return values for the parcel profile, as well as the ambient pressure, temperature, and dew point that includes the lcl
    • Fixed corner case problems in some thermodynamic calculations by using parcel profiles including the LCL
    • Added function to get a matplotlib color from a GEMPAK color number
    • Added CartoPy map feature for U.S. counties
    • get_test_data will now automatically download and cache data files if the user is not running a git checkout of MetPy. This makes all of our test/example data much more easily available.
    • Added smooth_gaussian, which smooths a grid using a Gaussian distribution-shaped kernel; this is an analog of GEMPAK's gwfs
    • Fixed error reading newer NEXRAD Level 2 files

    Contributors

    @akrherz, @JoyMonteiro, @jthielen, @leouieda, @sgdecker, @jrleeman, and @dopplershift contributed code to this release.

    Issues Closed

    In this release 19 issues were closed.

    Pull Requests Merged

    • PR 929 - Calculation fixes (902)
    • PR 928 - A Few Documentation Fixes
    • PR 927 - Add US County features (447)
    • PR 925 - Add gpm unit as an alias to meters (907)
    • PR 924 - Fix logging setup (866)
    • PR 923 - Add unit tutorial (905)
    • PR 922 - BUG: Increase default x clipping radius for SkewT
    • PR 921 - Doc/example updates (867, 857)
    • PR 920 - Respell doc page names for clarity (904)
    • PR 917 - Add link to SciPy 2018 talk
    • PR 916 - Add gempak_color() and related tests
    • PR 915 - WIP: Use Pooch to download sample data (8)
    • PR 911 - Implement gwfs function from GEMPAK
    • PR 910 - Fix non-tuple NumPy indexing in MetPy (900)
    • PR 908 - Make handling units like 'degrees_north' a little nicer
    • PR 903 - Add NARR Cross Section Example
    • PR 901 - Update docstring for vorticity
    • PR 899 - Make derivative calculations work with xarray DataArrays
    • PR 898 - Remove removed functions from doc page override (897)
    • PR 892 - "Improve this page" links for examples and tutorials
    • PR 891 - Update nexrad (884)
    • PR 889 - Reorganization of calc docs (with module template override option) (809)
    • PR 888 - permit usage of temperature in Kelvin for heat_index calc
    • PR 887 - fix apparent_temperature when only windchill is calculated
    • PR 882 - Cleanup kinematics calculations and permit leading dimensions (690)
    • PR 881 - Expose cartopy globe in CFProjection and xarray accessor (859)
    • PR 880 - xarray Coordinate Identification Cleanup (860)
    • PR 879 - Add cross section function and supporting calculations (654, 652)
    • PR 876 - Add conversions between omega and w
    • PR 875 - Additional changes to drop python 3.4
    • PR 873 - Drop python 3.4
    • PR 872 - Changing gridding to interpolate
    • PR 871 - Systematic Coordinate Identification
    • PR 869 - Change x to coordinates in gradient and laplacian interface (842)
    • PR 868 - Update Wind Functions (865, 794)
    • PR 856 - Update thermo.py (854)

    In this release 36 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.8.0(May 17, 2018)

    Version 0.8 (2018/05/17)

    API Changes

    • lat_lon_grid_spacing has been deprecated in favor of lat_lon_grid_deltas. The latter gives properly signed values depending on the ordering of points in the lat/lon grid.
    • The deprecated upper air data reading support has been removed. Use the upper air support in siphon instead.
    • The function delete_masked_points has been renamed to _delete_masked_points, as it was not intended to be part of the supported API.
    • GINIFile.to_dataset(), which gives a netCDF4-python-like interface to the information in the file, has been deprecated. Instead, now an instance of GINIFile can be passed directly to xarray.open_dataset() to provide a similar interface. to_dataset() (as well as the non-public cdm module) will be removed in 0.11.

    Highlights

    • MetPy now requires XArray. Using XArray, MetPy provides some custom accessors under the .metpy attribute on Dataset and DataArray. This allows simplified access to the underlying grid projection as a CartoPy projection, as well as simplified access to data as an array with units attached. (See the XArray_Projections.py example) MetPy calculation functions will also now automatically convert an XArray DataArray with units metadata into a proper array with units. Future releases of MetPy will improve the integration with XArray.
    • GINIFile now works directly as an XArray storage backend. See the updated GINI_Water_Vapor.py example for details. Support for Unidata NEXRAD composites in GINI format was also added.
    • MetPy's colortables are now available from metpy.plots.colortables rather than needing to do metpy.plots.ctables.registry.
    • Fixed a few corner cases with isentropic interpolation, including problems with columns of entirely missing data (frequently encountered with NARR data)
    • lfc and el now work with arbitrary parcel profiles
    • Gradient and related functions now properly propagate masked values
    • Text and time formatting for add_timestamp() are now configurable
    • New calculations
      • Absolute vorticity
      • Ageostrophic wind
      • Apparent temperature (combines wind chill and heat index)
      • Brunt-Väisälä frequency and period
      • Critical angle (severe weather parameter)
      • Dewpoint (from specific humidity)
      • Exner function
      • Inertial advective wind
      • Parse angle (converts strings like "ESE" to degree values)
      • Potential temperature to temperature
      • Potential vorticity
      • Q Vector
      • Saturation equivalent potential temperature
      • Static stability
      • Wet bulb temperature
    • Other assorted bug fixes
    • Reminder: MetPy plans to drop support for Python 2.7 in Fall 2019

    Contributors

    @ahuang11, @akrherz, @asselapathirana, @eliteuser26, @jthielen, @kishan3, @Meteodan, @mwilson14, @shofer16450, @tjwixtrom, @WEP11, @jrleeman, and @dopplershift all contributed commits to this release.

    Issues Closed

    • Issue #841 - Update GEMPAK table
    • Issue #836 - Examples fail on netcdf4 1.4
    • Issue #833 - apparent_temperature with scalars
    • Issue #827 - Themo.py parcel_profile edge case all p less than lcl
    • Issue #820 - Suggested improvement for api/generated/metpy.calc.bulk_shear
    • Issue #819 - Unify and fix dev/contributor docs
    • Issue #812 - Add missing items to plots and gridding namespaces
    • Issue #810 - Segmented Hodograph Misses Surface
    • Issue #806 - Add quiver functionality to hodograph
    • Issue #805 - Make hodograph creation unit aware
    • Issue #803 - Document Python 2.7 plans
    • Issue #802 - Add information about semantic versioning
    • Issue #798 - isentropic_interpolation() should enforce a search direction, ideally user specifiable
    • Issue #797 - Add unit helper for pandas data frames
    • Issue #795 - Update GINI support
    • Issue #789 - get_layer_heights modifying heights in place
    • Issue #782 - Advertise Stack Overflow for support
    • Issue #774 - GEOD kwargs override in lat_lon_grid_spacing
    • Issue #773 - Coriolis Units
    • Issue #769 - isentropic_interpolation error on NARR isobaric data
    • Issue #757 - Exner Function
    • Issue #756 - Change all example calculation imports to mpcalc
    • Issue #755 - Montgomery Stream Function Docs
    • Issue #750 - Make LFC/EL calculations respect chosen parcel profile?
    • Issue #737 - Add optional unit conversion to barbs
    • Issue #730 - Increase versatility of add_timestamp
    • Issue #724 - Create feels_like function as frontend to windchill and heat_index
    • Issue #722 - Fix build again
    • Issue #716 - metpy.calc.gradient docs are unclear
    • Issue #712 - Add tests for gradient
    • Issue #708 - Add calls to add_timestamp to examples
    • Issue #703 - mixing_ratio_from_relative_humidity returns values in percent
    • Issue #702 - potential temperature to temperature
    • Issue #700 - Export gradient
    • Issue #699 - Make lat_lon_grid_spacing aware of sign
    • Issue #693 - Freetype Pinning
    • Issue #689 - Removals/Deprecations in 0.8
    • Issue #687 - Fix doctests with numpy 1.14
    • Issue #683 - Clean up isentropic interpolation example
    • Issue #650 - Potential Vorticity
    • Issue #642 - Masked arrays and gradient
    • Issue #640 - Inertial Advective Wind
    • Issue #616 - Clean up sigma interpolation example
    • Issue #409 - Add calculation for wet bulb temperature
    • Issue #306 - Improve Contributor Documentation

    In this release 45 issues were closed.

    Pull Requests Merged

    • PR #851 - MNT: Fix some non-standard naming
    • PR #850 - Optimize parse_angle
    • PR #849 - Fix mask propagation in gradient
    • PR #848 - Clean up examples
    • PR #847 - Xarray Conversion Decorator
    • PR #846 - Isentropic updates
    • PR #844 - Add new functionality to GEMPAK table
    • PR #843 - Added a function to calculate critical angle.
    • PR #840 - Remove requirements text
    • PR #839 - Exposing functionality
    • PR #838 - Apparent temperature working with scalars
    • PR #835 - Delete masked points
    • PR #834 - Add example usage of parse_angle()
    • PR #831 - Hodograph units
    • PR #830 - Add tests for gradient
    • PR #829 - Update GINI Support
    • PR #828 - parcel_profile fails with truncated pressure profile
    • PR #826 - LFC above LCL
    • PR #825 - Pass parcel profile through cape_cin calculation
    • PR #824 - Dewpoint From Specific Humidity
    • PR #822 - Doc maint
    • PR #821 - Adding calculation of LFC and EL for arbitrary parcel profile
    • PR #818 - MNT: Fix travis doc build
    • PR #817 - Feels like temperature
    • PR #816 - Hodograph arrows
    • PR #815 - Refactor colored line segment hodograph
    • PR #814 - Documentation updates
    • PR #811 - Removes grid size warning from generate_grid
    • PR #807 - Pandas unit helper
    • PR #796 - BUG: Fix get_layer_heights modifying heights in-place (Fixes #789)
    • PR #793 - Improve logging in NEXRAD Level 3
    • PR #786 - Xarray + CF + CartoPy Projection Handling
    • PR #783 - Add new metpy/calc/tools parse_angle
    • PR #781 - Remove upperair support
    • PR #780 - Remove keys()
    • PR #779 - Add Exner Function
    • PR #778 - Add Q-vector and Static Stability Calculations
    • PR #777 - Add inertial advective wind calculation
    • PR #776 - Geod kwarg override
    • PR #775 - Coriolis units to 1/s
    • PR #771 - Updating tests
    • PR #768 - Four panel example edit
    • PR #766 - Potential vorticity
    • PR #765 - CartoPy Updates
    • PR #759 - MNT: use mpcalc as import alias for metpy.calc
    • PR #758 - Fix rendering issues in Montgomery Streamfunction
    • PR #754 - Absolute vorticity
    • PR #753 - Rename testdata
    • PR #749 - MNT: Fix Travis testing with CartoPy
    • PR #748 - Add saturation equivalent potential temperature
    • PR #747 - Add county outline files
    • PR #746 - Add potential temperature to temperature conversion
    • PR #744 - Fix dependecies. #734
    • PR #741 - Adds custom grid boundary to interpolate
    • PR #740 - Fix return types in docstrings of logo functions
    • PR #739 - Ageostrophic wind
    • PR #738 - Barb unit conversion at plot time
    • PR #736 - Fix Level3File
    • PR #735 - Fix Example/Tutorial Flake
    • PR #733 - Add Dry Air Density Constant
    • PR #732 - Add timestamp options
    • PR #731 - Wet Bulb Temperature
    • PR #727 - Add lat_lon_grid_deltas function to replace lat_lon_grid_spacing
    • PR #720 - Add precipitation color table
    • PR #718 - Add calls to 'add_timestamp' to examples
    • PR #711 - Export gradient
    • PR #710 - Clean up sigma interpolation example
    • PR #709 - Fix build
    • PR #707 - Force mixing_ratio_from_relative_humidity to return dimensionless
    • PR #695 - Add Batch of Functions for Brunt-Väisälä Frequency and Period

    In this release 70 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.7.0(Jan 4, 2018)

    Version 0.7 (2018/01/04)

    API Changes

    • The default dimension ordering for functions in kinematics (i.e. when dim_order is not passed) has changed from "xy" to "yx". This lets more data work out of the box with these functions, and has been warned since 0.5.1
    • Renamed h_convergence and v_vorticity to divergence and vorticity, respectively. These latter names are simpler and more accurate. The old names are still available for old code, but are deprecated and will be removed in 0.9.
    • convergence_vorticity and shearing_stretching_deformation are deprecated, and will be removed in 0.9. These functions existed as performance optimizations, but new calculation internals renders them unnecessary.
    • The parameter sblcl for significant_tornado has been renamed to surface_based_lcl_height to improve clarity. This only affects users who were passing by keyword argument.
    • Changed relative_humidity_wet_psychrometric, relative_humidity_from_mixing_ratio, and relative_humidity_from_specific_humidity to return values as unitless ratios rather than percentages, for better symmetry with the rest of the library.

    Highlights

    • Added our own functions for first_derivative, second_derivative, gradient, and laplacian. These are 3 point finite difference calculations that handle irregularly spaced grid points.
    • Added function to calculate x,y grid spacing for latitude/longitude grids
    • Added table of equivalencies between GEMPAK functions and Python. This is an on-going effort to provide a resource for migrating from GEMPAK.
    • Added ability to add_timestamp to add outlined text
    • New calculations
      • Thickness (using hypsometric formula)
      • Geopotential to/from height
      • Mixing ratio from relative humidity
      • Moist static energy
      • Dry static energy

    Contributors

    @akrherz, @dennissergeev, @eliteuser26, @jthielen, @leouieda, @lsterzinger, @shofer16450, @tjwixtrom, @WEP11, @jrleeman, and @dopplershift all contributed commits to this release.

    Issues Closed

    In this release 18 issues were closed.

    Pull Requests Merged

    • PR 698 - MNT: Change default dimension ordering for kinematics functions
    • PR 697 - Add high contrast functionality to timestamp (610)
    • PR 694 - Change unit attachment to LCL pressure (619)
    • PR 692 - Add gradient and derivatives for irregular grids (174)
    • PR 688 - Fix versioned doc handling (675)
    • PR 686 - DOC: Correct "the the" typos
    • PR 684 - Respelling of v_vorticity and h_divergence
    • PR 682 - Add RTD Theme
    • PR 681 - Add relative humidity calculation from dewpoint function
    • PR 679 - Make mixing_ratio return 'dimensionless'
    • PR 678 - New functions for calculation of geopotential from height and vice versa
    • PR 677 - Update to Treat RH as a Unitless Ratio in Existing Functions
    • PR 676 - Replace "View source" with "Improve this page" (673)
    • PR 674 - GEMPAK Conversion Table (574)
    • PR 672 - Add Code of Conduct
    • PR 671 - Update gridding_functions.py
    • PR 669 - Add a Mixing Ratio from RH Calculation
    • PR 668 - DOC: check presence of patched rtd_theme prior to setting versions
    • PR 625 - Ensure that appropriate constants and function results are dimensionless (623)
    • PR 624 - Hodograph coloring bound units (615)
    • PR 622 - Indices scalar input (608)
    • PR 621 - Add a Thickness Calculation
    • PR 620 - Rename Convergence Functions to Divergence (617)
    • PR 618 - Docs cleanup (312)
    • PR 612 - [MNT] Fix flake8 import order issues
    • PR 611 - Update returns of figure annotations (609)
    • PR 607 - Static energy calculations
    • PR 605 - Specific humidity from mixing ratio
    • PR 533 - Calc dx dy

    In this release 29 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.6.1(Nov 5, 2017)

    Version 0.6.1 (2017/11/04)

    API Change

    • Small API change to change storm_relative_helicity to take heights, as well as an argument for depth. This fixes a bug in the original design of the function where the default bottom was 0, which is below the first level of most soundings.

    Highlights

    • Fix bugs in corner cases of get_layer, precipitable_water, el, and bulk_shear
    • Fix use of units with plot_colormapped on Hodograph
    • Fix lack of projection of wind barbs in StationPlot when using CartoPy
    • Enable interpolation by default when calling shade_cape and friends for SkewT
    • Fixed up definitions of CAPE and CIN to be net integrals above and below the LFC, respectively
    • Add MetPy logo to examples

    Issues Closed

    In this release 12 issues were closed.

    Pull Requests Merged

    • PR 604 - Improve logo positioning (563)
    • PR 603 - Integrate all areas for CAPE/CIN (370)
    • PR 602 - get_layer bounds improvements (596)
    • PR 600 - Fix projection of barbs in StationPlot
    • PR 597 - get_layer with data in increasing pressure order (593)
    • PR 595 - Cleanup precipitable water
    • PR 577 - Storm Relative Helicity Improvements (576)
    • PR 572 - Hodograph coloring units ([569](https://github.com/an issue where units were being dropped and causing improper plots. Closes /issues/569))
    • PR 571 - Turn on interpolation in CAPE/CIN shading by default (566)
    • PR 570 - Assign depth kwarg default value if it is None in get_layer (568)
    • PR 565 - Update Sounding Tutorial/Examples
    • PR 564 - Update GINI Example with new color table values (560)
    • PR 562 - Simplify EL calculation
    • PR 561 - Return figure object when adding logo

    In this release 14 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0(Sep 15, 2017)

    Version 0.6 (2017/09/15)

    Summary

    API Changes

    • MetPy's upper air data download functionality has been deprecated, and will be removed in version 0.8. This functionality can now be found in Siphon 0.6.
    • equivalent_potential_temperature has changed to explicitly take a dewpoint parameter. The previous implementation of this calculation was only valid for pressure and temperature corresponding to the lifted condensation level (LCL). The new formula accepting dewpoint explicitly is valid everywhere.

    Other Changes

    • Additional calculations
      • CAPE/CIN, including most unstable and surface-based
      • precipitable water
      • Montgomery streamfunction
      • supercell composite
      • significant tornado parameter
      • frontogenesis and (shear, stretching, total) deformation
      • relative humidity
      • storm relative helicity
      • Bunker's storm motion
    • Added isentropic interpolation
    • Added support for 1D interpolation on multi-dimensional arrays
    • Added example for interpolating from sigma coordinates to pressure coordinates
    • Support for coloring layers on a hodograph
    • Support for coloring wind barbs on skew-T
    • Added function for adding MetPy and/or Unidata logos to figures
    • Added warnings to get_wind_components and coriolis_parameter when it seems that degree values are accidentally passed in without units (which treats them as radians)
    • Simplified turning on clipping on StationPlot

    Dependency Updates

    • Minimum supported NumPy version is now 1.10.0
    • Minimum supported Pint version is now 0.8

    Contributors

    @abkenyon, @bryanguarente, @brianmapes, @jrleeman, @kgoebber, @mwilson14, @nawendt, @tjwixtrom, and @dopplershift all contributed code to this release.

    Issues Closed

    • Issue 555 - skew.ax.set_xlim() Values Being Overwritten
    • Issue 550 - Add our own implementation for is_string_like
    • Issue 546 - Clipping surface plots with layout
    • Issue 538 - Use shade_cape and shade_cin
    • Issue 516 - Add deprecation warning for get_upper_air_data
    • Issue 507 - Add capability to manually control station plot size
    • Issue 504 - Add mapping of METAR wx codes to WMO numeric codes
    • Issue 489 - NEXRAD Level 2 AssertionError
    • Issue 479 - Clean up constants documentation
    • Issue 467 - Duplicated output points in find_intersections
    • Issue 460 - Add reduce_point_density to examples
    • Issue 450 - Level3File threshold error
    • Issue 445 - Weird output from IAState
    • Issue 435 - Handle Wyoming Server Downtime Gracefully
    • Issue 431 - Re-enable Sphinx linkcheck
    • Issue 428 - Update References
    • Issue 425 - Unused Function Parameter in Point_Interpolation Example
    • Issue 424 - Input validation for dewpoint_rh
    • Issue 410 - Add MetPy logo and timestamp option
    • Issue 400 - Improve colormaps
    • Issue 340 - Reproduce Doswell and Rasmussen, 1994
    • Issue 294 - Pressure to theta conversion
    • Issue 293 - Sigma to pressure conversion
    • Issue 284 - Use doctr for documentation deployment
    • Issue 16 - CAPE/CIN calculation

    In this release 25 issues were closed.

    Pull Requests Merged

    • PR 559 - Add unidata logo
    • PR 557 - Add warning when coriolis calculation latitude is over pi radians
    • PR 556 - Remove x limit setting in skewt.plot
    • PR 554 - Fix duplication of intersections in find_intersections
    • PR 553 - Remove is_string_like
    • PR 552 - Fix #546
    • PR 551 - Wind direction warning
    • PR 545 - Supercell Composite and Significant Tornado Parameters
    • PR 543 - ENH: Fully implement matplotlib/pint integration
    • PR 539 - Update to shade helpers in docs
    • PR 536 - Storm Motion and Shear
    • PR 535 - Update wx_code_map in wx_symbols.py
    • PR 531 - MNT: QuantifiedCode is dead
    • PR 528 - Doc cleanup
    • PR 527 - MNT: Update some links that were redirecting
    • PR 526 - Colormap improvements
    • PR 525 - Dewpoint from RH input validation.
    • PR 523 - GitHub enhancements
    • PR 521 - adds frontogenesis calculation and test
    • PR 520 - Isentropic Example
    • PR 519 - MNT: Deprecate get_upper_air_data
    • PR 515 - Pressure-Weighted Mean
    • PR 514 - Sigma to Pressure Interpolation Example
    • PR 513 - ENH: Add link to MetPy poster and repo for SciPy 2017
    • PR 512 - wmo code dictionary added to wx_symbols.py
    • PR 511 - Theta-E
    • PR 510 - MNT: Bump numpy requirement to 1.10.0
    • PR 509 - ENH: Add link to MetPy units talk
    • PR 506 - Reduce point density in Station_Plot.py example
    • PR 505 - NEXRAD parser fixes
    • PR 503 - Constants documentation
    • PR 502 - Add unit verification to find_intersections
    • PR 497 - Floating comparisons
    • PR 494 - Most Unstable CAPE
    • PR 492 - SBCAPE
    • PR 491 - Fixing minor LFC bug
    • PR 490 - El Bug Fix
    • PR 487 - Precipitable Water
    • PR 486 - Mixed parcel and layer
    • PR 485 - BUG: Fix get_layer with float32 data
    • PR 484 - Cleanup point interpolation example
    • PR 483 - Move contributor guide
    • PR 482 - Hodograph Layer Coloring
    • PR 481 - Interp Bug Fix
    • PR 477 - Add sigma to pressure conversion
    • PR 475 - Get layer interpolation fix
    • PR 473 - Most unstable parcel
    • PR 472 - Change Pint dependency to version 0.8.
    • PR 469 - LFC and EL calculations when LFC = LCL
    • PR 468 - Log interpolation
    • PR 465 - CAPE and CIN Calculations
    • PR 464 - Update references
    • PR 462 - Added a function to calculate storm-relative helicity given a storm motion vector and a wind profile.
    • PR 459 - Have get_upper_air_data bring in height data.
    • PR 456 - Fixes
    • PR 455 - Montgomery Streamfunction
    • PR 454 - Isentropic pressure
    • PR 453 - Log interpolation
    • PR 446 - Relative humidity
    • PR 444 - Get Layer Function
    • PR 443 - Pressure height helpers
    • PR 439 - MNT: Refactor lcl to use scipy.optimize
    • PR 432 - Be better about closing file handles
    • PR 429 - Fix build
    • PR 427 - Adds total deformation calculation
    • PR 419 - Add height to pressure conversion
    • PR 412 - Pass any args to plot_barbs so the barbs can be colored. Closes #404
    • PR 402 - Adding shearing and stretching deformation calcs

    In this release 68 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.5.1(Apr 21, 2017)

    Version 0.5.1 (2017/04/21)

    NOTE--Impending API CHANGE In this version we have added support for specifying (via dim_order keyword argument) array ordering for the 2D grid functions (geostrophic_wind, advection, h_convergence, v_vorticity, and convergence_vorticity). The default behavior for all releases < 0.6 has been x, then y (specified as 'xy'). For >= 0.6, we will be changing that to 'yx' to make it simpler to use most data sources. In this release, we will issue a warning if you are using the default ordering--this warning can be suppressed by passing the dim_order argument with either 'xy' or 'yx', whichever is appropriate for your data.

    Summary:

    • Fix windchill with Kelvin temperature units
    • Fixed reversed ordering of GINI data y-coordinates (relative to image row order)
    • Added option to specify array dimension ordering for 2D grid calculation functions
    • Fixed inaccuracy of example code in docstrings
    • Fixed lfc() to return NaNs instead of None when no LFC found

    Issues Closed

    In this release 4 issues were closed.

    Pull Requests Merged

    • PR 397 - Build maintenance
    • PR 396 - LFC and EL NaN returns
    • PR 393 - ENH: Run doctests as part of Travis doc build.
    • PR 392 - Array ordering for 2D calculations
    • PR 391 - BUG: Fix ordering of GINI y-coordinates
    • PR 388 - BUG: Fix windchill when given kelvin temperatures (Fixes #385)

    In this release 6 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Apr 4, 2017)

    Version 0.5.0 (2017/04/03)

    Highlights

    • API BREAK: lcl() now returns both the pressure and temperature at the lifted condensation level, rather than just pressure. Not only does this simplify the use of lcl, but comes at no additional computation cost.
    • Python 3.3 support replaced with support for Python 3.6 (though no related code changes)
    • Galleries of symbols and color tables within the documentation
    • SkewT improvements
      • Better handling of missing data
      • Default limits
      • Dedicated plotting routines for shading CAPE/CIN
      • Better handling of unit-ed arrays
    • Added meteogram and 4 panel plot examples
    • Wind speed and direction available directly from upper air data
    • Several fixes for lcl() and lfc()
    • Additional calculations:
      • virtual_temperature
      • virtual_potential_temperature
      • density
      • equilibrium layer (el)
      • relative_humidity_wet_psychrometric
      • psychrometric_vapor_pressure_wet
    • GINIFile now has an img_extent attribute to simplify plotting
    • Added reduce_point_density to remove overlapping points from point data plots
    • A few fixes for StationPlot

    Contributors to this release

    @ahill818, @nawendt, @kgoebber, @mjames-upc, @jrleeman, @dopplershift

    Issues Closed

    • Issue 371 - Add link to source code in docs
    • Issue 369 - Four_Panel_Map.py example: temp plot legend says 225 to 330 Fahrenheit
    • Issue 366 - Nest documentation a bit more
    • Issue 361 - LFC fails with NaN
    • Issue 354 - Graceful failure of upper air data retrieval for invalid station or time
    • Issue 351 - find_intersections fails with some masked arrays
    • Issue 350 - Incorrect LFC with capping inversion
    • Issue 349 - Add interpolation utility
    • Issue 336 - Plotting colored line on hodograph with NaN
    • Issue 334 - Upper air data download from Iowa
    • Issue 325 - Can't set fontsize for stationplot symbol plot
    • Issue 319 - LFC returns incorrect result
    • Issue 317 - lcl() is silent for failed convergence
    • Issue 314 - More Documentation Tweaks
    • Issue 308 - Standardize field naming in station plot examples
    • Issue 307 - Station plot parameter plotting does not work with units properly
    • Issue 300 - Add temperature to LCL calculation
    • Issue 298 - Keep wind speed and direction when getting upper air data
    • Issue 290 - Cartopy with matplotlib 2.0
    • Issue 289 - Add "Atmospheric Science" to setup.py categories
    • Issue 286 - Python 3.6
    • Issue 242 - Investigate increased use of gitter
    • Issue 227 - License for icon font
    • Issue 198 - Using units to axhline, etc. breaks plotting
    • Issue 175 - Improve units behavior for new users
    • Issue 161 - DOI
    • Issue 154 - calculate relative humidity and dew point with wet bulb and dry bulb
    • Issue 90 - Spatial simplification

    In this release 28 issues were closed.

    Pull Requests Merged

    • PR 384 - ENH: Add information for citing MetPy in publications
    • PR 382 - Shade area on SkewT
    • PR 380 - ENH: Add tool to thin down point data (Fixes #90)
    • PR 379 - BUG: Fix units in 4 panel example (Fixes #369)
    • PR 378 - Skew T Masked Data
    • PR 376 - Colortable get with range
    • PR 374 - Unit errors
    • PR 372 - Add ability to deal with masked arrays to find_intersections
    • PR 357 - Adds new img_extent attribute to ginifile dataset
    • PR 355 - Interpolation utility
    • PR 353 - IA State masked arrays
    • PR 352 - Find intersections directionality
    • PR 345 - Psychrometric RH
    • PR 342 - Mask out NaN values for plot_colormapped lines.
    • PR 341 - Fix return if no LFC exists
    • PR 338 - EL calculation
    • PR 337 - Added thermo calculations
    • PR 335 - ENH: Add google analytics to docs
    • PR 333 - Four Panel Example
    • PR 332 - Add CC BY 4.0 license for weather symbol font
    • PR 331 - Set edgecolor to black on state borders
    • PR 330 - Convert quantities to scalars before formatting
    • PR 329 - Sprint cleanup
    • PR 328 - Raise exception if LCL does not converge
    • PR 327 - Station fontsize
    • PR 326 - Doc tweaks
    • PR 324 - Wind speed direction
    • PR 323 - Change Station Plot Examples to CF standard names
    • PR 321 - Python 3.6
    • PR 320 - LFC fix
    • PR 318 - added an example to plot a meteogram
    • PR 315 - LCL Update
    • PR 309 - Doc Upgrades
    • PR 304 - Symbol Gallery
    • PR 302 - NWS AWIPS 8bit colortables for Z and V

    In this release 35 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.4.3(Jan 18, 2017)

    Version 0.4.3 (2017/01/18)

    • Fixed units on return from windchill
    • Fixed documented types on some calculations to reflect reality
    • Fixed creating a Hodograph without passing a figure
    • Fixed SkewT when gridlines are turned on before plot creation
    • Fixed gamma argument not being being passed on by inverse_distance()
    • Fixed testing against matplotlib 2.0
    • Fixed SkewT missing top tick marks
    • Fixed importing colortables when non-conforming .tbl files present

    Contributors to this release

    @ShawnMurd, @wholmgren, @ymoisan, @lmadaus, @dopplershift

    Issues closed

    Issues

    • Issue 281 - Windchill return has no units if values are masked
    • Issue 279 - Comment needs modification
    • Issue 277 - inverse_distance() not properly forwarding gamma argument
    • Issue 276 - Python version-dependent scaling of station plot
    • Issue 275 - mixing_ratio not quite right
    • Issue 271 - Cannot find xaxis in version 0.4.2
    • Issue 270 - Graphing a Hodograph in its own figure
    • Issue 267 - Colortable reader raises SyntaxError
    • Issue 260 - SkewT missing top tickmarks
    • Issue 254 - Update example imports
    • Issue 247 - Update readthedocs links
    • Issue 204 - Fix tests for matplotlib 2.0

    In this release 14 issues were closed

    Pull requests

    • PR 282 - Small bug fixes
    • PR 280 - Update docs
    • PR 274 - Improve tests
    • PR 273 - Fix bug in Hodograph Object
    • PR 272 - Various odd and ends
    • PR 269 - fix get_wind_components see also doc string
    • PR 265 - More checks
    • PR 263 - MNT: Fix for gradient change in numpy 1.12
    • PR 261 - More skewt fixes

    In this release 10 pull requests were merged

    Source code(tar.gz)
    Source code(zip)
  • v0.4.2(Nov 18, 2016)

    Version 0.4.2 (2016/11/18)

    Major changes

    • Fixed units for lfc
    • Improved handling of missing levels in Wyoming Upper Air Archive reader (Contributed by @kgoebber)
    • Fixed extra whitespace in Skew-T images--this was especially noticeable when using the Jupyter notebook
    • Fixed exception in Level3File when converting some products' values to float (e.g. differential reflectivty, correlation coefficient)

    Issues closed

    Issues

    • Issue #259 - Regenerate skew-T examples
    • Issue #257 - Disable log minor ticks on SkewT
    • Issue #253 - NEXRAD Level3File map_data IndexError
    • Issue #251 - lfc losing units
    • Issue #197 - Skew-T figure size is a function of the rotation argument
    • Issue #158 - Skew-T's have extra whitespace

    In this release 6 issues were closed

    Pull requests

    • PR #258 - SkewT Fixes
    • PR #255 - BUG: Fix mapping values for several products (Fixes #253)
    • PR #252 - Cleanup
    • PR #250 - update Wyoming Archive read procedure

    In this release 4 pull requests were merged

    Source code(tar.gz)
    Source code(zip)
  • v0.4.1(Nov 4, 2016)

    Version 0.4.1 (2016/11/04)

    Just a few small bugfixes from 0.4

    Issues closed

    Issues

    • Issue #246 - Add conda to install guide
    • Issue #245 - TextCollection broken with PathEffects and empty strings
    • Issue #244 - Possible bad dates in Level3File
    • Issue #233 - Problem with GINI Polar Stereographic image
    • Issue #232 - Bad parcel profile
    • Issue #220 - Possible error in gridding_functions.py

    In this release 6 issues were closed

    Pull requests

    • PR #248 - Small fixes
    • PR #237 - Fix parcel_profile
    • PR #222 - BUG: Fix buffer argument (Fixes #220)

    In this release 3 pull requests were merged

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Oct 14, 2016)

    • New calculations:
      • Saturation mixing ratio (#163)
      • Equivalent potential temperature (#163)
      • Coriolis parameter (#205)
      • Level of free convection (LFC, #201)
    • Added provisional support for objective analysis/regridding (#186):
      • Barnes
      • Cressman
      • Nearest neighbor
      • Natural Neighbor
      • Radial Basis Function interpolation
    • Added support for downloading upper air data from Wyoming and Iowa State archives (#202)
    • Bug Fixes:
      • Fixed value of omega in constants (#173)
      • Updated value of Earth's radius to match GEMPAK (#173)
      • Fixed 180 degree offset in wind direction calculation (#179)
      • Fixed potential temperature with non-millibar pressure units (#165)
    • Unique authors:
      • @kpozsonyi
      • @ahaberlie
      • @deeplycloudy
      • @jrleeman
      • @dopplershift
    Source code(tar.gz)
    Source code(zip)
  • v0.3.1(Jun 18, 2016)

    • Fixes:
      • Make compatible with pint 0.7
      • #138 - Fix for polar stereographic projection in GINI files
      • #139 - Fix for Mercator projection in GINI files
      • #148 - Fix reading some TDWR NIDS products
    • Other notes:
      • Use conda-forge channel now for conda packages
      • Now tested on AppVeyor for Windows
      • Improved example list in docs--now has a gallery of images from the notebooks
    Source code(tar.gz)
    Source code(zip)
Owner
Unidata
Our mission is to transform the geosciences community, research, and education by providing innovative data services and tools.
Unidata
Weather Image Recognition - Python weather application using series of data

Weather Image Recognition - Python weather application using series of data

Kushal Shingote 1 Feb 4, 2022
yt is an open-source, permissively-licensed Python library for analyzing and visualizing volumetric data.

The yt Project yt is an open-source, permissively-licensed Python library for analyzing and visualizing volumetric data. yt supports structured, varia

The yt project 367 Dec 25, 2022
The official repository for ROOT: analyzing, storing and visualizing big data, scientifically

About The ROOT system provides a set of OO frameworks with all the functionality needed to handle and analyze large amounts of data in a very efficien

ROOT 2k Dec 29, 2022
A collection of robust and fast processing tools for parsing and analyzing web archive data.

ChatNoir Resiliparse A collection of robust and fast processing tools for parsing and analyzing web archive data. Resiliparse is part of the ChatNoir

ChatNoir 24 Nov 29, 2022
Reading streams of Twitter data, save them to Kafka, then process with Kafka Stream API and Spark Streaming

Using Streaming Twitter Data with Kafka and Spark Reading streams of Twitter data, publishing them to Kafka topic, process message using Kafka Stream

Rustam Zokirov 1 Dec 6, 2021
Stream-Kafka-ELK-Stack - Weather data streaming using Apache Kafka and Elastic Stack.

Streaming Data Pipeline - Kafka + ELK Stack Streaming weather data using Apache Kafka and Elastic Stack. Data source: https://openweathermap.org/api O

Felipe Demenech Vasconcelos 2 Jan 20, 2022
🧪 Panel-Chemistry - exploratory data analysis and build powerful data and viz tools within the domain of Chemistry using Python and HoloViz Panel.

???? ??. The purpose of the panel-chemistry project is to make it really easy for you to do DATA ANALYSIS and build powerful DATA AND VIZ APPLICATIONS within the domain of Chemistry using using Python and HoloViz Panel.

Marc Skov Madsen 97 Dec 8, 2022
Weather analysis with Python, SQLite, SQLAlchemy, and Flask

Surf's Up Weather analysis with Python, SQLite, SQLAlchemy, and Flask Overview The purpose of this analysis was to examine weather trends (precipitati

Art Tucker 1 Sep 5, 2021
A collection of learning outcomes data analysis using Python and SQL, from DQLab.

Data Analyst with PYTHON Data Analyst berperan dalam menghasilkan analisa data serta mempresentasikan insight untuk membantu proses pengambilan keputu

null 6 Oct 11, 2022
A Pythonic introduction to methods for scaling your data science and machine learning work to larger datasets and larger models, using the tools and APIs you know and love from the PyData stack (such as numpy, pandas, and scikit-learn).

This tutorial's purpose is to introduce Pythonistas to methods for scaling their data science and machine learning work to larger datasets and larger models, using the tools and APIs they know and love from the PyData stack (such as numpy, pandas, and scikit-learn).

Coiled 102 Nov 10, 2022
Data collection, enhancement, and metrics calculation.

l3_data_collection Data collection, enhancement, and metrics calculation. Summary Repository containing code for QuantDAO's JDT data collection task.

Ruiwyn 3 Dec 23, 2022
GWpy is a collaboration-driven Python package providing tools for studying data from ground-based gravitational-wave detectors

GWpy is a collaboration-driven Python package providing tools for studying data from ground-based gravitational-wave detectors. GWpy provides a user-f

GWpy 342 Jan 7, 2023
Additional tools for particle accelerator data analysis and machine information

PyLHC Tools This package is a collection of useful scripts and tools for the Optics Measurements and Corrections group (OMC) at CERN. Documentation Au

PyLHC 3 Apr 13, 2022
Tools for the analysis, simulation, and presentation of Lorentz TEM data.

ltempy ltempy is a set of tools for Lorentz TEM data analysis, simulation, and presentation. Features Single Image Transport of Intensity Equation (SI

McMorran Lab 1 Dec 26, 2022
Visions provides an extensible suite of tools to support common data analysis operations

Visions And these visions of data types, they kept us up past the dawn. Visions provides an extensible suite of tools to support common data analysis

null 168 Dec 28, 2022
Helper tools to construct probability distributions built from expert elicited data for use in monte carlo simulations.

Elicited Helper tools to construct probability distributions built from expert elicited data for use in monte carlo simulations. Credit to Brett Hoove

Ryan McGeehan 3 Nov 4, 2022
Universal data analysis tools for atmospheric sciences

U_analysis Universal data analysis tools for atmospheric sciences Script written in python 3. This file defines multiple functions that can be used fo

Luis Ackermann 1 Oct 10, 2021
Tools for working with MARC data in Catalogue Bridge.

catbridge_tools Tools for working with MARC data in Catalogue Bridge. Borrows heavily from PyMarc

null 1 Nov 11, 2021
Data cleaning tools for Business analysis

Datacleaning datacleaning tools for Business analysis This program is made for Vicky's work. You can use it, too. 数据清洗 该数据清洗工具是为了商业分析 这个程序是为了Vicky的工作而

Lin Jian 3 Nov 16, 2021