Skip to content

Commit 2d9659c

Browse files
Add new bucket utilities (#68)
* Dummy note * Fix 'size' cbar_kwargs argument * Add precip colorbars * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add changes * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * GV small updates * GV small updates * Improve pyresample code * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add code related to DPR retrievals and remapping * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix CI * Add new cmaps * Fix for resample changes * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update colormaps yamls * Fix colorbar ticks issue * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add add_labels for plot_image * Update to xarray datatree * Improve viz tools * Add new open functions with datatree * Fix plot tests * Fix plot tests * Add parallel utilities * Update gv tools * Fix bug in overpass grouping * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Small updates to GV code * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Dummy changes * Change CI * Change CI * Add crop_around_valid_data * Update code * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add code * Add BAMS pictures * Add code * Update bucket utilities * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add bucket and orbit utilities * Update bucket routine * Improve bucket IO code * Remove temporary colormaps * Improve PMW composites code * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Add xarray utility for ranking value distribution * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix tests * Update ref to gpm test data * Update tutorials * Improve remapping --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 5f030ab commit 2d9659c

File tree

141 files changed

+38425
-11820
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

141 files changed

+38425
-11820
lines changed

.github/ISSUE_TEMPLATE/bug_report.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ body:
4141
description: |
4242
examples:
4343
- **OS**: Ubuntu 20.04
44-
- **Python**: 3.8.2
44+
- **Python**: 3.11.2
4545
value: |
4646
- OS:
4747
- python:

.github/workflows/lint.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
- uses: actions/checkout@v4
99
- uses: actions/setup-python@v5
1010
with:
11-
python-version: "3.8"
11+
python-version: "3.10"
1212
- name: Ruff
1313
if: success() || failure()
1414
uses: pre-commit/[email protected]

.github/workflows/tests.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
os: [ubuntu-latest]
17-
python-version: ["3.9", "3.10", "3.11", "3.12"]
17+
python-version: ["3.10", "3.11", "3.12"]
1818
experimental: [false]
1919
include:
2020
- os: ubuntu-latest

.github/workflows/tests_windows.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
os: [windows-latest]
17-
python-version: ["3.9", "3.10", "3.11", "3.12"]
17+
python-version: ["3.10", "3.11", "3.12"]
1818
experimental: [false]
1919
steps:
2020
- uses: actions/checkout@v4

CODE_OF_CONDUCT.md

+130
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socioeconomic status,
9+
nationality, personal appearance, race, caste, color, religion, or sexual
10+
identity and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment for our
18+
community include:
19+
20+
- Demonstrating empathy and kindness toward other people
21+
- Being respectful of differing opinions, viewpoints, and experiences
22+
- Giving and gracefully accepting constructive feedback
23+
- Accepting responsibility and apologizing to those affected by our mistakes,
24+
and learning from the experience
25+
- Focusing on what is best not just for us as individuals, but for the overall community
26+
27+
Examples of unacceptable behavior include:
28+
29+
- The use of sexualized language or imagery, and sexual attention or advances of any kind
30+
- Trolling, insulting or derogatory comments, and personal or political attacks
31+
- Public or private harassment
32+
- Publishing others' private information, such as a physical or email address,
33+
without their explicit permission
34+
- Other conduct which could reasonably be considered inappropriate in a
35+
professional setting
36+
37+
## Enforcement Responsibilities
38+
39+
Community leaders are responsible for clarifying and enforcing our standards of
40+
acceptable behavior and will take appropriate and fair corrective action in
41+
response to any behavior that they deem inappropriate, threatening, offensive,
42+
or harmful.
43+
44+
Community leaders have the right and responsibility to remove, edit, or reject
45+
comments, commits, code, wiki edits, issues, and other contributions that are
46+
not aligned to this Code of Conduct, and will communicate reasons for moderation
47+
decisions when appropriate.
48+
49+
## Scope
50+
51+
This Code of Conduct applies within all community spaces, and also applies when
52+
an individual is officially representing the community in public spaces.
53+
Examples of representing our community include using an official e-mail address,
54+
posting via an official social media account, or acting as an appointed
55+
representative at an online or offline event.
56+
57+
## Enforcement
58+
59+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
60+
reported to the community leaders responsible for enforcement at
61+
\[INSERT CONTACT METHOD\].
62+
All complaints will be reviewed and investigated promptly and fairly.
63+
64+
All community leaders are obligated to respect the privacy and security of the
65+
reporter of any incident.
66+
67+
## Enforcement Guidelines
68+
69+
Community leaders will follow these Community Impact Guidelines in determining
70+
the consequences for any action they deem in violation of this Code of Conduct:
71+
72+
### 1. Correction
73+
74+
**Community Impact**: Use of inappropriate language or other behavior deemed
75+
unprofessional or unwelcome in the community.
76+
77+
**Consequence**: A private, written warning from community leaders, providing
78+
clarity around the nature of the violation and an explanation of why the
79+
behavior was inappropriate. A public apology may be requested.
80+
81+
### 2. Warning
82+
83+
**Community Impact**: A violation through a single incident or series of
84+
actions.
85+
86+
**Consequence**: A warning with consequences for continued behavior. No
87+
interaction with the people involved, including unsolicited interaction with
88+
those enforcing the Code of Conduct, for a specified period of time. This
89+
includes avoiding interactions in community spaces as well as external channels
90+
like social media. Violating these terms may lead to a temporary or permanent
91+
ban.
92+
93+
### 3. Temporary Ban
94+
95+
**Community Impact**: A serious violation of community standards, including
96+
sustained inappropriate behavior.
97+
98+
**Consequence**: A temporary ban from any sort of interaction or public
99+
communication with the community for a specified period of time. No public or
100+
private interaction with the people involved, including unsolicited interaction
101+
with those enforcing the Code of Conduct, is allowed during this period.
102+
Violating these terms may lead to a permanent ban.
103+
104+
### 4. Permanent Ban
105+
106+
**Community Impact**: Demonstrating a pattern of violation of community
107+
standards, including sustained inappropriate behavior, harassment of an
108+
individual, or aggression toward or disparagement of classes of individuals.
109+
110+
**Consequence**: A permanent ban from any sort of public interaction within the
111+
community.
112+
113+
## Attribution
114+
115+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
116+
version 2.1, available at
117+
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
118+
119+
Community Impact Guidelines were inspired by
120+
[Mozilla's code of conduct enforcement ladder][mozilla coc].
121+
122+
For answers to common questions about this code of conduct, see the FAQ at
123+
[https://www.contributor-covenant.org/faq][faq]. Translations are available at
124+
[https://www.contributor-covenant.org/translations][translations].
125+
126+
[faq]: https://www.contributor-covenant.org/faq
127+
[homepage]: https://www.contributor-covenant.org
128+
[mozilla coc]: https://github.com/mozilla/diversity
129+
[translations]: https://www.contributor-covenant.org/translations
130+
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html

README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
55
| Deployment | [![PyPI](https://badge.fury.io/py/gpm_api.svg?style=flat)](https://pypi.org/project/gpm_api/) [![Conda](https://img.shields.io/conda/vn/conda-forge/gpm-api.svg?logo=conda-forge&logoColor=white&style=flat)](https://anaconda.org/conda-forge/gpm-api) |
66
| Activity | [![PyPI Downloads](https://img.shields.io/pypi/dm/gpm_api.svg?label=PyPI%20downloads&style=flat)](https://pypi.org/project/gpm_api/) [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/gpm-api.svg?label=Conda%20downloads&style=flat)](https://anaconda.org/conda-forge/gpm-api) |
7-
| Python Versions | [![Python Versions](https://img.shields.io/badge/Python-3.9%20%203.10%20%203.11%20%203.12-blue?style=flat)](https://www.python.org/downloads/) |
7+
| Python Versions | [![Python Versions](https://img.shields.io/badge/Python-3.10%20%203.11%20%203.12%20%203.13-blue?style=flat)](https://www.python.org/downloads/) |
88
| Supported Systems | [![Linux](https://img.shields.io/github/actions/workflow/status/ghiggi/gpm_api/.github/workflows/tests.yaml?label=Linux&style=flat)](https://github.com/ghiggi/gpm_api/actions/workflows/tests.yaml) [![macOS](https://img.shields.io/github/actions/workflow/status/ghiggi/gpm_api/.github/workflows/tests.yaml?label=macOS&style=flat)](https://github.com/ghiggi/gpm_api/actions/workflows/tests.yaml) [![Windows](https://img.shields.io/github/actions/workflow/status/ghiggi/gpm_api/.github/workflows/tests_windows.yaml?label=Windows&style=flat)](https://github.com/ghiggi/gpm_api/actions/workflows/tests_windows.yaml) |
99
| Project Status | [![Project Status](https://www.repostatus.org/badges/latest/active.svg?style=flat)](https://www.repostatus.org/#active) |
1010
| Build Status | [![Tests](https://github.com/ghiggi/gpm_api/actions/workflows/tests.yaml/badge.svg?style=flat)](https://github.com/ghiggi/gpm_api/actions/workflows/tests.yaml) [![Lint](https://github.com/ghiggi/gpm_api/actions/workflows/lint.yaml/badge.svg?style=flat)](https://github.com/ghiggi/gpm_api/actions/workflows/lint.yaml) [![Docs](https://readthedocs.org/projects/gpm_api/badge/?version=latest&style=flat)](https://gpm-api.readthedocs.io/en/latest/) |
@@ -95,7 +95,9 @@ A GPM granule can be opened in python using:
9595
```python
9696
import gpm
9797

98-
ds = gpm.open_granule(<path_to_granule>)
98+
ds = gpm.open_granule_dataset(<path_to_granule>)
99+
# or
100+
dt = gpm.open_granule_datatree(<path_to_granule>)
99101

100102
```
101103

ci/environment.yaml

+1-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ dependencies:
3131
- trame-vtk
3232
- trame-vuetify
3333
- trollsift
34-
- xarray-datatree
35-
- xarray
34+
- xarray>=2025.01.0
3635
- xoak
3736
- ximage

ci/environment_latest.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,5 @@ dependencies:
3131
- trame-vuetify
3232
- trollsift
3333
- xarray
34-
- xarray-datatree
3534
- xoak
3635
- ximage

docs/environment.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ dependencies:
88
- pandoc
99
- pip
1010
- polars
11-
- python>=3.9
11+
- python>=3.10
1212
- pyvista
1313
- sphinx-book-theme==1.1.0
1414
- sphinx-gallery

docs/source/00_introduction.rst

+14-6
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ The reference sensors for the GPM mission are the:
3232
The :ref:`GPM Data Archive <gpm_data_archive>` currently includes satellite data records that extend back to 1987.
3333
This extensive archive is the result of contributions from two spaceborne radars and a fleet of 26 passive microwave (PMW) sensors that forms the so-called GPM constellation.
3434

35-
The data are organized into various :ref:` product levels <gpm_product_levels>`,
35+
The data are organized into various :ref:`product levels <gpm_product_levels>`,
3636
encompassing raw and calibrated observations (Level 1), intermediate geophysical retrieval products (Level 2),
3737
and spatio-temporally integrated datasets from single and multiple satellites (Level 3).
3838

@@ -586,6 +586,7 @@ IMERG Precipitation
586586
The Integrated Multi-satellite Retrievals for GPM (IMERG) is an advanced algorithm designed
587587
to generate a high resolution precipitation product every 30 minutes, covering the full globe (up to version 6, a quasi-global area from 60°S to 60°N)
588588
with a spatial resolution of 0.1° x 0.1°.
589+
The latest IMERG product covers the time period from January 1998 to present.
589590

590591
By leveraging measurements from Geostationary (GEO) IR imagers and the :ref:`GPM PMW sensors constellation <gpm_constellation>`,
591592
IMERG provides a "best-estimate" of 30-minute average precipitation rates.
@@ -606,8 +607,11 @@ While IMERG Early uses only forward propagation in time (extrapolation in time),
606607

607608
When PMW data are too sparse, IMERG incorporates precipitation estimates derived from GEO IR imagery through a weighted Kalman filter.
608609

609-
IR-based precipitation estimates are derived from the
610-
`Climate Prediction Center (CPC) Merged 4-km Global IR data product <https://disc.gsfc.nasa.gov/datasets/GPM_MERGIR_1/summary>`_.
610+
IR-based precipitation estimates are derived from the NOAA Climate Data Record (CDR) of Gridded Satellite Data from the ISCCP B1 (GridSat-B1) IR dataset for
611+
all timesteps between January 1998 and February 7, 2002, 20:00:00 UTC.
612+
Starting from February 7, 2002, 20:00:00 UTC, IR-based precipitation estimates
613+
are obtained from the `NOAA Climate Prediction Center (CPC) Merged 4-km Global IR data product <https://disc.gsfc.nasa.gov/datasets/GPM_MERGIR_1/summary>`_.
614+
611615
This dataset composites infrared (IR) brightness temperature measurements from numerous geostationary sensors over their operational periods,
612616
including European (METEOSAT-5/7/8/9/10/11), Japanese (GMS-5, MTSat-1R/2, Himawari-8/9), and U.S. (GOES-8/9/10/11/12/13/14/15/16/17/18) satellites,
613617
every 30 minutes between 60°N/S.
@@ -728,9 +732,9 @@ examination of land surface effects on radar, radiometer, or combined-sensor pre
728732

729733
For detailed information on the TRMM/GPM-CloudSat Coincidence dataset, please
730734
refer to the corresponding `journal article <https://www.mdpi.com/2072-4292/13/12/2264>`_
731-
and the `Algorithm Theoretical Basis Document (ATBD) <https://gpm.nasa.gov/resources/documents/cloudsat-gpm-coincidence-dataset-version-1c>`_.
735+
and the `Algorithm Theoretical Basis Document (ATBD) <https://arthurhou.pps.eosdis.nasa.gov/Documents/CSAT_TRMM_GPM_COIN_ATBD_V05.pdf>`_.
732736

733-
The coincidence dataset can be downloaded with GPM-API using the ``2B-GPM-CSAT`` and ``2B-TRMM-CSAT`` product acronyms.
737+
The TRMM/GPM-CloudSat Coincidence dataset V5 can be downloaded with GPM-API using the ``2B-GPM-CSAT`` and ``2B-TRMM-CSAT`` product acronyms.
734738

735739
The figure below displays a quick-look radar time-height profile imagery from the GPM - CloudSat Coincidence dataset.
736740

@@ -931,10 +935,14 @@ Please also note that on Google Earth Engine are available the version 6 of `GSM
931935
and `IMERG <https://developers.google.com/earth-engine/datasets/catalog/NASA_GPM_L3_IMERG_V06>`_.
932936

933937
GSMaP can be visualized on the `JAXA Global Rainfall Watch <https://sharaku.eorc.jaxa.jp/GSMaP/index.htm>`_,
934-
while IMERG on the `GPM IMERG Global Viewer <https://gpm.nasa.gov/data/visualization/global-viewer>`_ and the `EOSDIS WorldView Portal <https://worldview.earthdata.nasa.gov/?v=-235.13866988428558,-76.35016978404038,104.5800850894752,96.99821113230026&l=Reference_Labels_15m(hidden),Reference_Features_15m(hidden),Coastlines_15m,IMERG_Precipitation_Rate,VIIRS_NOAA20_CorrectedReflectance_TrueColor(hidden),VIIRS_SNPP_CorrectedReflectance_TrueColor(hidden),MODIS_Aqua_CorrectedReflectance_TrueColor(hidden),MODIS_Terra_CorrectedReflectance_TrueColor&lg=true&t=2024-02-08-T03%3A43%3A10Z>`_.
938+
while IMERG on
939+
`the RAIN-Global Viewer (Regional Animations of IMERG in Near-realtime - Global Edition) <https://storm.pps.eosdis.nasa.gov/storm/outreach/RAIN-Global.html>`_ ,
940+
the `GPM IMERG Global Viewer <https://gpm.nasa.gov/data/visualization/global-viewer>`_ and
941+
the `EOSDIS WorldView Portal <https://worldview.earthdata.nasa.gov/?v=-235.13866988428558,-76.35016978404038,104.5800850894752,96.99821113230026&l=Reference_Labels_15m(hidden),Reference_Features_15m(hidden),Coastlines_15m,IMERG_Precipitation_Rate,VIIRS_NOAA20_CorrectedReflectance_TrueColor(hidden),VIIRS_SNPP_CorrectedReflectance_TrueColor(hidden),MODIS_Aqua_CorrectedReflectance_TrueColor(hidden),MODIS_Terra_CorrectedReflectance_TrueColor&lg=true&t=2024-02-08-T03%3A43%3A10Z>`_.
935942

936943
The `GES DISC Interactive Online Visualization ANd aNalysis Infrastructure (Giovanni) <https://giovanni.gsfc.nasa.gov/giovanni/>`_ also provides quick access to analysis of IMERG products.
937944

945+
938946
.. _useful_resources:
939947

940948
Useful Resources

docs/source/02_installation.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ To perform spaceborne-ground radar calibration and validation, install
286286

287287
.. code-block:: bash
288288
289-
conda install -c conda-forge xradar wradlib pyart
289+
conda install -c conda-forge xradar wradlib arm_pyart
290290
291291
292292
Run GPM-API on Jupyter Notebooks

0 commit comments

Comments
 (0)