. . . .
. . . . .. .% .
.. . . .-@: . . .
:+ . . . . =++=- . .---==---. . .@.
:*@@*. . . . .::----:. -::-+**#%%%####**##*++++*#=.--++--. .
=* . .-=+#%%%#*##****++%+--.=+++++++++++++++*++++=:--+**#%###=: .
. . . -*%%#++++++++=---=++++*=- -+*++++=++++++=+++++-=+----=+=+++*++=
. . *@. . -#%#*++++++++++++++++=----+----+-**+++++++*+++*+++++++=---++++++++
. . . . -***++++----------==+++++++--+***+-=*+*++-*+**++++++++*+++---*++++++
. . -++++---.:::+***- . ===--+++-+##*+-*++*++++++++++*++++++----=+=++==
. =*+=-: :+:=:***+#######- ---+-=###*+++++***+*++++*+**++++---- -=-----
. . . .. =++-:=++-:+##***#####**++**. .:-**##*=**++++***++++**++=+++----.-------
-+- =***##-*%#=#######*=-***** +++#*==#++++*+=++*+++*++++=---- --- ----
+- *********+####### -*********: ===-%*+++++***++++++++=+---- :
= +*******:#########***+=*==****- :---**+==*+++++*++++=------. .
. :******=###########=**-+####**** :- =++--- ===+++------- .
. .=@-. .#=**+=#############*********=**=. -=**++++--:--------- . .
. * *#**###*###########***********=**# ===#**+++---------.. .
. ####=*#############**************# ==%#+**++-----. .. .
=. +#####=****#########************#=+==##++=+---- . . . :
. . #####******+############******##--*%#*+++--- .+@. .
. . ..=####**********#########******:=+*%**++--- . .. .
. +#####*******##########****:--+#**++--- . ..
. .=#####****############***:-+**++---- .
-. . ####**=#############- -+*+----- . . . .
@@: . ##**#############=------ . .+
. . +. =###########+. . . . --
. . . . . . :.
. . . . . .
Adaptive mesh precipitation mapping from ERA5 Zarr v3 on Google Cloud Storage.
- Rust >= 1.91 (
rustup updateif needed) - Internet connection (reads from public GCS bucket, no credentials required)
cargo build --releaseFetch ERA5 total precipitation for a bounding box at a specific UTC datetime:
cargo run --release -- \
--bbox "lat_min,lat_max,lon_min,lon_max" \
--datetime "YYYY-MM-DDTHH:MM:SS" \
-o output.pngCentral US:
cargo run --release -- --bbox "35.0,45.0,-90.0,-75.0" --datetime "2023-06-15T12:00:00" -o precip.pngWestern Europe:
cargo run --release -- --bbox "42.0,52.0,-5.0,10.0" --datetime "2023-01-10T06:00:00" -o europe.pngSoutheast Asia:
cargo run --release -- --bbox "-10.0,20.0,95.0,120.0" --datetime "2023-08-01T00:00:00" -o asia.png| Argument | Description |
|---|---|
--bbox |
Bounding box as lat_min,lat_max,lon_min,lon_max. Latitude: [-90, 90]. Longitude: [-180, 360]. |
--datetime |
UTC datetime in ISO 8601 format. Data available from 1940 to ~2023. |
-o, --output |
Output PNG path (default: precip.png). |
RUST_LOG=debug cargo run --release -- --bbox "35.0,45.0,-90.0,-75.0" --datetime "2023-06-15T12:00:00"Run offline tests (domain validation + plot rendering):
cargo testRun integration test (fetches real data from GCS):
cargo test -- --ignoredRun all tests:
cargo test -- --include-ignoredReads from the ARCO ERA5 Zarr v3 store on Google Cloud Storage:
- Bucket:
gs://gcp-public-data-arco-era5 - Variable:
total_precipitation(meters of water, hourly) - Resolution: 0.25 degrees (~25 km), hourly
- Coverage: Global, 1940-2023
- Access: Anonymous (no credentials needed)
Output values are displayed in millimeters (mm).