pycontrails 0.58.0__tar.gz → 0.59.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pycontrails might be problematic. Click here for more details.

Files changed (294) hide show
  1. {pycontrails-0.58.0 → pycontrails-0.59.0}/.github/workflows/scorecard.yaml +2 -2
  2. {pycontrails-0.58.0 → pycontrails-0.59.0}/CHANGELOG.md +14 -0
  3. {pycontrails-0.58.0 → pycontrails-0.59.0}/Makefile +1 -0
  4. {pycontrails-0.58.0/pycontrails.egg-info → pycontrails-0.59.0}/PKG-INFO +1 -2
  5. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/api.rst +8 -0
  6. pycontrails-0.59.0/docs/notebooks/GRUAN.ipynb +1054 -0
  7. pycontrails-0.59.0/docs/notebooks/run-cocip-on-flight.ipynb +1539 -0
  8. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/observations.rst +5 -0
  9. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/_version.py +3 -3
  10. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/interpolation.py +6 -6
  11. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/met.py +26 -21
  12. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/rgi_cython.c +357 -337
  13. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/goes.py +10 -3
  14. pycontrails-0.59.0/pycontrails/datalib/gruan.py +343 -0
  15. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/himawari/himawari.py +4 -0
  16. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocip/contrail_properties.py +1 -1
  17. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/physics/thermo.py +3 -3
  18. {pycontrails-0.58.0 → pycontrails-0.59.0/pycontrails.egg-info}/PKG-INFO +1 -2
  19. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails.egg-info/SOURCES.txt +3 -0
  20. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails.egg-info/requires.txt +0 -1
  21. {pycontrails-0.58.0 → pycontrails-0.59.0}/pyproject.toml +0 -1
  22. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_cocip.py +13 -27
  23. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_goes.py +23 -0
  24. pycontrails-0.59.0/tests/unit/test_gruan.py +143 -0
  25. pycontrails-0.58.0/docs/notebooks/run-cocip-on-flight.ipynb +0 -1532
  26. {pycontrails-0.58.0 → pycontrails-0.59.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  27. {pycontrails-0.58.0 → pycontrails-0.59.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  28. {pycontrails-0.58.0 → pycontrails-0.59.0}/.github/dependabot.yaml +0 -0
  29. {pycontrails-0.58.0 → pycontrails-0.59.0}/.github/pull_request_template.md +0 -0
  30. {pycontrails-0.58.0 → pycontrails-0.59.0}/.github/workflows/docs.yaml +0 -0
  31. {pycontrails-0.58.0 → pycontrails-0.59.0}/.github/workflows/doctest.yaml +0 -0
  32. {pycontrails-0.58.0 → pycontrails-0.59.0}/.github/workflows/release.yaml +0 -0
  33. {pycontrails-0.58.0 → pycontrails-0.59.0}/.github/workflows/test.yaml +0 -0
  34. {pycontrails-0.58.0 → pycontrails-0.59.0}/.gitignore +0 -0
  35. {pycontrails-0.58.0 → pycontrails-0.59.0}/.pre-commit-config.yaml +0 -0
  36. {pycontrails-0.58.0 → pycontrails-0.59.0}/.zenodo.json +0 -0
  37. {pycontrails-0.58.0 → pycontrails-0.59.0}/CONTRIBUTING.md +0 -0
  38. {pycontrails-0.58.0 → pycontrails-0.59.0}/LICENSE +0 -0
  39. {pycontrails-0.58.0 → pycontrails-0.59.0}/NOTICE +0 -0
  40. {pycontrails-0.58.0 → pycontrails-0.59.0}/README.md +0 -0
  41. {pycontrails-0.58.0 → pycontrails-0.59.0}/RELEASE.md +0 -0
  42. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/_static/css/style.css +0 -0
  43. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/_static/img/colab.png +0 -0
  44. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/_static/img/favicon.png +0 -0
  45. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/_static/img/logo-dark.png +0 -0
  46. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/_static/img/logo.png +0 -0
  47. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/_static/pycontrails.bib +0 -0
  48. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/changelog.rst +0 -0
  49. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/conf.py +0 -0
  50. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/contributing.rst +0 -0
  51. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/develop.rst +0 -0
  52. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/flight.rst +0 -0
  53. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/index.rst +0 -0
  54. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/install.rst +0 -0
  55. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/integrations/ACCF.ipynb +0 -0
  56. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/integrations/APCEMM.ipynb +0 -0
  57. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/literature.rst +0 -0
  58. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/meteorology.rst +0 -0
  59. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/models.rst +0 -0
  60. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/ARCO-ERA5.ipynb +0 -0
  61. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/AircraftPerformance.ipynb +0 -0
  62. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/Cache.ipynb +0 -0
  63. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/CoCiP.ipynb +0 -0
  64. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/CoCiPGrid.ipynb +0 -0
  65. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/ECMWF.ipynb +0 -0
  66. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/Flight.ipynb +0 -0
  67. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/GFS.ipynb +0 -0
  68. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/GOES.ipynb +0 -0
  69. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/Himawari.ipynb +0 -0
  70. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/ISSR.ipynb +0 -0
  71. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/Landsat.ipynb +0 -0
  72. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/Meteorology.ipynb +0 -0
  73. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/SAC.ipynb +0 -0
  74. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/Sentinel.ipynb +0 -0
  75. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/advection.ipynb +0 -0
  76. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/airports.ipynb +0 -0
  77. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/data/.gitignore +0 -0
  78. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/data/flight-ap.csv +0 -0
  79. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/data/flight-cocip.csv +0 -0
  80. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/data/flight-fdr.csv +0 -0
  81. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/data/flight-noisy.csv +0 -0
  82. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/data/flight.csv +0 -0
  83. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/data/iagos-flight-landsat.csv +0 -0
  84. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/data/iagos-flight-sentinel.csv +0 -0
  85. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/flightplan.ipynb +0 -0
  86. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/model-levels.ipynb +0 -0
  87. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/run-cocip-with-fdr.ipynb +0 -0
  88. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks/specific-humidity-interpolation.ipynb +0 -0
  89. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/notebooks.rst +0 -0
  90. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/tutorials.rst +0 -0
  91. {pycontrails-0.58.0 → pycontrails-0.59.0}/docs/utilities.rst +0 -0
  92. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/__init__.py +0 -0
  93. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/__init__.py +0 -0
  94. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/aircraft_performance.py +0 -0
  95. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/airports.py +0 -0
  96. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/cache.py +0 -0
  97. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/coordinates.py +0 -0
  98. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/fleet.py +0 -0
  99. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/flight.py +0 -0
  100. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/flightplan.py +0 -0
  101. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/fuel.py +0 -0
  102. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/met_var.py +0 -0
  103. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/models.py +0 -0
  104. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/polygon.py +0 -0
  105. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/rgi_cython.pyx +0 -0
  106. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/core/vector.py +0 -0
  107. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/__init__.py +0 -0
  108. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/_met_utils/metsource.py +0 -0
  109. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/ecmwf/__init__.py +0 -0
  110. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/ecmwf/arco_era5.py +0 -0
  111. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/ecmwf/common.py +0 -0
  112. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/ecmwf/era5.py +0 -0
  113. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/ecmwf/era5_model_level.py +0 -0
  114. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/ecmwf/hres.py +0 -0
  115. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/ecmwf/hres_model_level.py +0 -0
  116. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/ecmwf/ifs.py +0 -0
  117. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/ecmwf/model_levels.py +1 -1
  118. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/ecmwf/static/model_level_dataframe_v20240418.csv +0 -0
  119. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/ecmwf/variables.py +0 -0
  120. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/geo_utils.py +0 -0
  121. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/gfs/__init__.py +0 -0
  122. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/gfs/gfs.py +0 -0
  123. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/gfs/variables.py +0 -0
  124. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/himawari/__init__.py +0 -0
  125. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/himawari/header_struct.py +0 -0
  126. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/landsat.py +0 -0
  127. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/leo_utils/__init__.py +0 -0
  128. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/leo_utils/correction.py +0 -0
  129. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/leo_utils/landsat_metadata.py +0 -0
  130. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/leo_utils/search.py +0 -0
  131. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/leo_utils/sentinel_metadata.py +0 -0
  132. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/leo_utils/static/bq_roi_query.sql +0 -0
  133. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/leo_utils/vis.py +0 -0
  134. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/sentinel.py +0 -0
  135. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/spire/__init__.py +0 -0
  136. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/spire/exceptions.py +0 -0
  137. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/datalib/spire/spire.py +0 -0
  138. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/ext/bada.py +0 -0
  139. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/ext/cirium.py +0 -0
  140. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/ext/empirical_grid.py +0 -0
  141. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/ext/synthetic_flight.py +0 -0
  142. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/__init__.py +0 -0
  143. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/accf.py +0 -0
  144. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/apcemm/__init__.py +0 -0
  145. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/apcemm/apcemm.py +0 -0
  146. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/apcemm/inputs.py +0 -0
  147. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/apcemm/static/apcemm_yaml_template.yaml +0 -0
  148. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/apcemm/utils.py +0 -0
  149. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocip/__init__.py +0 -0
  150. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocip/cocip.py +0 -0
  151. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocip/cocip_params.py +0 -0
  152. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocip/cocip_uncertainty.py +0 -0
  153. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocip/output_formats.py +0 -0
  154. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocip/radiative_forcing.py +0 -0
  155. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocip/radiative_heating.py +0 -0
  156. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocip/unterstrasser_wake_vortex.py +0 -0
  157. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocip/wake_vortex.py +0 -0
  158. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocip/wind_shear.py +0 -0
  159. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocipgrid/__init__.py +0 -0
  160. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocipgrid/cocip_grid.py +0 -0
  161. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/cocipgrid/cocip_grid_params.py +0 -0
  162. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/dry_advection.py +0 -0
  163. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/emissions/__init__.py +0 -0
  164. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/emissions/black_carbon.py +0 -0
  165. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/emissions/emissions.py +0 -0
  166. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/emissions/ffm2.py +0 -0
  167. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/emissions/static/default-engine-uids.csv +0 -0
  168. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/emissions/static/edb-gaseous-v29b-engines.csv +0 -0
  169. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/emissions/static/edb-nvpm-v29b-engines.csv +0 -0
  170. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/extended_k15.py +0 -0
  171. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/humidity_scaling/__init__.py +0 -0
  172. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/humidity_scaling/humidity_scaling.py +0 -0
  173. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/humidity_scaling/quantiles/era5-model-level-quantiles.pq +0 -0
  174. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/humidity_scaling/quantiles/era5-pressure-level-quantiles.pq +0 -0
  175. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/issr.py +0 -0
  176. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/pcc.py +0 -0
  177. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/pcr.py +0 -0
  178. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/ps_model/__init__.py +0 -0
  179. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/ps_model/ps_aircraft_params.py +0 -0
  180. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/ps_model/ps_grid.py +0 -0
  181. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/ps_model/ps_model.py +0 -0
  182. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/ps_model/ps_operational_limits.py +0 -0
  183. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/ps_model/static/ps-aircraft-params-20250328.csv +0 -0
  184. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/ps_model/static/ps-synonym-list-20250328.csv +0 -0
  185. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/sac.py +0 -0
  186. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/models/tau_cirrus.py +0 -0
  187. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/physics/__init__.py +0 -0
  188. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/physics/constants.py +0 -0
  189. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/physics/geo.py +0 -0
  190. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/physics/jet.py +0 -0
  191. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/physics/static/iata-cargo-load-factors-20250221.csv +0 -0
  192. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/physics/static/iata-passenger-load-factors-20250221.csv +0 -0
  193. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/physics/units.py +0 -0
  194. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/py.typed +0 -0
  195. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/utils/__init__.py +0 -0
  196. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/utils/dependencies.py +0 -0
  197. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/utils/iteration.py +0 -0
  198. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/utils/json.py +0 -0
  199. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/utils/temp.py +0 -0
  200. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails/utils/types.py +0 -0
  201. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails.egg-info/dependency_links.txt +0 -0
  202. {pycontrails-0.58.0 → pycontrails-0.59.0}/pycontrails.egg-info/top_level.txt +0 -0
  203. {pycontrails-0.58.0 → pycontrails-0.59.0}/setup.cfg +0 -0
  204. {pycontrails-0.58.0 → pycontrails-0.59.0}/setup.py +0 -0
  205. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/__init__.py +0 -0
  206. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/_deprecated.py +0 -0
  207. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/benchmark/cocip/Makefile +0 -0
  208. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/benchmark/cocip/README.md +0 -0
  209. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/benchmark/cocip/benchmark.py +0 -0
  210. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/benchmark/cocip/compare.py +0 -0
  211. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/benchmark/cocip/data.md +0 -0
  212. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/benchmark/cocip/output.py +0 -0
  213. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/benchmark/cocip/review.ipynb +0 -0
  214. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/benchmark/cocip-fortran/README.md +0 -0
  215. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/benchmark/north-atlantic-study/.gcloudignore +0 -0
  216. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/benchmark/north-atlantic-study/README.md +0 -0
  217. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/benchmark/north-atlantic-study/support.py +0 -0
  218. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/benchmark/north-atlantic-study/validate.py +0 -0
  219. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/fixtures/cocip-met.py +0 -0
  220. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/fixtures/cocip-met2.py +0 -0
  221. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/fixtures/ecmwf-met.py +0 -0
  222. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/fixtures/gfs-met.py +0 -0
  223. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/__init__.py +0 -0
  224. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/conftest.py +0 -0
  225. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/NOAA_Solar_Calculations_day.csv +0 -0
  226. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/cocip-contrail-output.json +0 -0
  227. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/cocip-contrail-output2.json +0 -0
  228. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/cocip-flight-output.json +0 -0
  229. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/cocip-flight-output2.json +0 -0
  230. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/cocip-output-contrail-edges.json +0 -0
  231. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/cocip-output-flts-20190101-eu.pq +0 -0
  232. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/flight-cocip2.csv +0 -0
  233. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/flight-meridian.csv +0 -0
  234. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/flight-metadata.json +0 -0
  235. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/flight-spire-data-cleaning.pq +0 -0
  236. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/flight.csv +0 -0
  237. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/flt-wypts-20190101-eu.pq +0 -0
  238. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/met-20190101-eu.nc +0 -0
  239. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/met-accf-pl.nc +0 -0
  240. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/met-accf-sl.nc +0 -0
  241. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/met-ecmwf-lnsp.nc +0 -0
  242. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/met-ecmwf-ml.nc +0 -0
  243. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/met-ecmwf-pl.nc +0 -0
  244. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/met-ecmwf-sl.nc +0 -0
  245. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/met-era5-cocip1.nc +0 -0
  246. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/met-era5-cocip2.nc +0 -0
  247. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/met-gfs.nc +0 -0
  248. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/polygon-bug.nc +0 -0
  249. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/rad-20190101-eu.nc +0 -0
  250. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/rad-era5-cocip1.nc +0 -0
  251. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/rad-era5-cocip2.nc +0 -0
  252. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/static/rad-gfs.nc +0 -0
  253. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_accf.py +0 -0
  254. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_airports.py +0 -0
  255. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_apcemm.py +0 -0
  256. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_cache.py +0 -0
  257. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_cocip_grid.py +0 -0
  258. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_cocip_grid_parity.py +0 -0
  259. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_cocip_radiative_forcing.py +0 -0
  260. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_cocip_uncertainty.py +0 -0
  261. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_coordinates.py +0 -0
  262. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_datalib_metsource.py +0 -0
  263. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_dry_advection.py +0 -0
  264. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_dtypes.py +0 -0
  265. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_ecmwf.py +0 -0
  266. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_emissions.py +0 -0
  267. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_fleet.py +0 -0
  268. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_flight.py +0 -0
  269. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_flightplan.py +0 -0
  270. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_fuel.py +0 -0
  271. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_geo.py +0 -0
  272. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_gfs.py +0 -0
  273. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_grid_to_netcdf.py +0 -0
  274. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_himawari.py +0 -0
  275. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_humidity_scaling.py +0 -0
  276. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_init.py +0 -0
  277. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_interpolation.py +0 -0
  278. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_leo.py +0 -0
  279. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_met.py +0 -0
  280. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_met_cache.py +0 -0
  281. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_models.py +0 -0
  282. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_pcc.py +0 -0
  283. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_polygons.py +0 -0
  284. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_ps_model.py +0 -0
  285. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_sac_issr.py +0 -0
  286. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_spire.py +0 -0
  287. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_tau_cirrus.py +0 -0
  288. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_thermo_sac.py +0 -0
  289. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_units.py +0 -0
  290. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_unterstrasser_wake_vortex.py +0 -0
  291. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_utils.py +0 -0
  292. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_vector.py +0 -0
  293. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_vpm.py +0 -0
  294. {pycontrails-0.58.0 → pycontrails-0.59.0}/tests/unit/test_zarr.py +0 -0
@@ -30,7 +30,7 @@ jobs:
30
30
  - uses: actions/checkout@v5
31
31
 
32
32
  - name: Run OpenSSF Security Scorecard
33
- uses: ossf/scorecard-action@v2.4.2
33
+ uses: ossf/scorecard-action@v2.4.3
34
34
  with:
35
35
  results_file: results.sarif
36
36
  results_format: sarif
@@ -38,6 +38,6 @@ jobs:
38
38
 
39
39
  # required for Code scanning alerts
40
40
  - name: "Upload SARIF results to code scanning"
41
- uses: github/codeql-action/upload-sarif@v3
41
+ uses: github/codeql-action/upload-sarif@v4
42
42
  with:
43
43
  sarif_file: results.sarif
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.59.0
4
+
5
+ ### Features
6
+
7
+ - Add lightweight `GRUAN` datalib for accessing GRUAN radiosonde data via FTP. See the [GRUAN notebook](https://py.contrails.org/notebooks/GRUAN.html) for usage examples.
8
+
9
+ ### Breaking changes
10
+
11
+ - Updated error handling in `goes.gcs_goes_path` to raise a `FileNotFoundError` if any of the requested bands are not available. Previous versions raised a `RuntimeError` only in cases where no requested bands were available.
12
+
13
+ ### Fixes
14
+
15
+ - Ensure call to `np.clip` in `contrail_properties.initial_ice_particle_number` is backwards compatible with numpy < 2.1.
16
+
3
17
  ## 0.58.0
4
18
 
5
19
  ### Features
@@ -205,6 +205,7 @@ nb-test: ensure-era5-cached nb-clean-check nb-format-check nb-check-links
205
205
  --ignore=docs/notebooks/model-levels.ipynb \
206
206
  --ignore=docs/notebooks/ARCO-ERA5.ipynb \
207
207
  --ignore=docs/notebooks/Sentinel.ipynb \
208
+ --ignore=docs/notebooks/GRUAN.ipynb \
208
209
  docs/notebooks docs/integrations
209
210
 
210
211
  # Check for broken links in notebooks
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycontrails
3
- Version: 0.58.0
3
+ Version: 0.59.0
4
4
  Summary: Python library for modeling aviation climate impacts
5
5
  Author-email: "Contrails.org" <py@contrails.org>
6
6
  License-Expression: Apache-2.0
@@ -35,7 +35,6 @@ Requires-Dist: xarray>=2022.3
35
35
  Provides-Extra: complete
36
36
  Requires-Dist: pycontrails[ecmwf,gcp,gfs,jupyter,pyproj,sat,vis,zarr]; extra == "complete"
37
37
  Provides-Extra: dev
38
- Requires-Dist: fastparquet>=0.8; extra == "dev"
39
38
  Requires-Dist: ipdb>=0.13; extra == "dev"
40
39
  Requires-Dist: memory_profiler; extra == "dev"
41
40
  Requires-Dist: mypy>=1.8; extra == "dev"
@@ -107,6 +107,14 @@ Low Earth Orbit Satellites
107
107
  datalib.leo_utils.sentinel_metadata
108
108
 
109
109
 
110
+ GRUAN Radiosondes
111
+ """""""""""""""""
112
+ .. autosummary::
113
+ :toctree: api/
114
+
115
+ datalib.gruan.GRUAN
116
+
117
+
110
118
  Models
111
119
  ------
112
120