rsplot 0.2.5__tar.gz → 0.2.7__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.
Files changed (35) hide show
  1. {rsplot-0.2.5 → rsplot-0.2.7}/.gitignore +1 -0
  2. {rsplot-0.2.5 → rsplot-0.2.7}/PKG-INFO +21 -1
  3. {rsplot-0.2.5 → rsplot-0.2.7}/README.md +20 -0
  4. {rsplot-0.2.5 → rsplot-0.2.7}/pyproject.toml +1 -1
  5. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/cli.py +579 -15
  6. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/config.py +14 -1
  7. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/geo/gridding.py +27 -4
  8. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/plotting/colormaps.py +9 -6
  9. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/plotting/overlay.py +3 -3
  10. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/plotting/station.py +113 -9
  11. rsplot-0.2.7/src/rsplot/readers/era5_wind.py +232 -0
  12. rsplot-0.2.7/src/rsplot/readers/forecast.py +257 -0
  13. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/recent.py +19 -5
  14. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/results.py +146 -3
  15. rsplot-0.2.5/src/rsplot/plotting/meteo.py +0 -422
  16. rsplot-0.2.5/src/rsplot/readers/era5.py +0 -477
  17. {rsplot-0.2.5 → rsplot-0.2.7}/LICENSE +0 -0
  18. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/__init__.py +0 -0
  19. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/__main__.py +0 -0
  20. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/fnr.py +0 -0
  21. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/geo/__init__.py +0 -0
  22. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/geo/boundaries.py +0 -0
  23. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/plotting/__init__.py +0 -0
  24. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/plotting/fnr.py +0 -0
  25. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/plotting/raster.py +0 -0
  26. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/plotting/styles.py +0 -0
  27. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/readers/__init__.py +0 -0
  28. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/readers/base.py +0 -0
  29. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/readers/guokong.py +0 -0
  30. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/readers/tropomi_hcho.py +0 -0
  31. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/readers/tropomi_no2.py +0 -0
  32. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/readers/tropomi_o3.py +0 -0
  33. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/readers/tropomi_o3pr.py +0 -0
  34. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/tiles/__init__.py +0 -0
  35. {rsplot-0.2.5 → rsplot-0.2.7}/src/rsplot/tiles/tianditu.py +0 -0
@@ -280,3 +280,4 @@ tags
280
280
  logs/
281
281
  .vscode/
282
282
  .claude
283
+ tests/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rsplot
3
- Version: 0.2.5
3
+ Version: 0.2.7
4
4
  Summary: CLI tool for plotting Remote Sensing data, designed for Agent.
5
5
  Project-URL: Repository, https://git.lug.ustc.edu.cn/yaoyhu/rsplot
6
6
  Project-URL: GitHub, https://github.com/yaoyhu/rsplot
@@ -280,6 +280,8 @@ o3 = "/path/to/O3"
280
280
  o3pr = "/path/to/O3PR"
281
281
  hcho = "/path/to/HCHO"
282
282
  guokong = "/path/to/guokong_combine"
283
+ era5 = "/path/to/era5"
284
+ forecast = "/path/to/forecast"
283
285
 
284
286
  # Optional satellite basemap key. Leave commented unless you have a real key.
285
287
  # [tianditu]
@@ -303,6 +305,8 @@ export RSPLOT_DATA_DIR_O3="/path/to/O3"
303
305
  export RSPLOT_DATA_DIR_O3PR="/path/to/O3PR"
304
306
  export RSPLOT_DATA_DIR_HCHO="/path/to/HCHO"
305
307
  export RSPLOT_DATA_DIR_GUOKONG="/path/to/guokong_combine"
308
+ export RSPLOT_DATA_DIR_ERA5="/path/to/era5"
309
+ export RSPLOT_DATA_DIR_FORECAST="/path/to/forecast"
306
310
  export RSPLOT_HCHO_CMAP_FILE="/path/to/256x3_rgb_table.txt"
307
311
  ```
308
312
 
@@ -330,9 +334,25 @@ rsplot raster 安徽 20260227 -p o3pr -o o3pr_anhui_20260227.png
330
334
  # Plot an explicit TROPOMI date range.
331
335
  rsplot raster 长三角 20260101-20260131 -p no2 -o no2_yrd_202601.png
332
336
 
337
+ # Plot gridded air-quality forecast initialized at a specific hour.
338
+ rsplot forecast 安徽 2026063000 --lead 24 --var O3 -o forecast_anhui_o3.png
339
+
340
+ # Date-only forecast input automatically selects the latest initialized hour.
341
+ rsplot forecast 合肥 20260630 --lead 72 --var PM2.5 -o forecast_hefei_pm25.png
342
+
343
+ # Overlay station observations on the forecast valid time.
344
+ rsplot forecast 合肥 2026041409 --lead 6 --var O3 --station-overlay -o forecast_station_hefei_o3.png
345
+
333
346
  # Plot national monitoring station observations.
334
347
  rsplot station 合肥 2026041415 --var O3 -o station_hefei_o3.png
335
348
 
349
+ # Overlay hourly ERA5 10 m wind vectors on station observations.
350
+ # Station timestamps default to Asia/Shanghai and are matched to ERA5 UTC.
351
+ rsplot station 合肥 2026041415 --var O3 --wind-level 10m -o station_wind_hefei_o3.png
352
+
353
+ # Pressure-level wind is also supported (1000/925/850/700/500 hPa).
354
+ rsplot station 安徽 2026041415 --var PM2.5 --wind-level 850 -o station_wind_anhui_pm25.png
355
+
336
356
  # Overlay satellite raster data and station observations.
337
357
  rsplot overlay 合肥 2026041415 -p no2 --var NO2 -o overlay_hefei_no2.png
338
358
 
@@ -53,6 +53,8 @@ o3 = "/path/to/O3"
53
53
  o3pr = "/path/to/O3PR"
54
54
  hcho = "/path/to/HCHO"
55
55
  guokong = "/path/to/guokong_combine"
56
+ era5 = "/path/to/era5"
57
+ forecast = "/path/to/forecast"
56
58
 
57
59
  # Optional satellite basemap key. Leave commented unless you have a real key.
58
60
  # [tianditu]
@@ -76,6 +78,8 @@ export RSPLOT_DATA_DIR_O3="/path/to/O3"
76
78
  export RSPLOT_DATA_DIR_O3PR="/path/to/O3PR"
77
79
  export RSPLOT_DATA_DIR_HCHO="/path/to/HCHO"
78
80
  export RSPLOT_DATA_DIR_GUOKONG="/path/to/guokong_combine"
81
+ export RSPLOT_DATA_DIR_ERA5="/path/to/era5"
82
+ export RSPLOT_DATA_DIR_FORECAST="/path/to/forecast"
79
83
  export RSPLOT_HCHO_CMAP_FILE="/path/to/256x3_rgb_table.txt"
80
84
  ```
81
85
 
@@ -103,9 +107,25 @@ rsplot raster 安徽 20260227 -p o3pr -o o3pr_anhui_20260227.png
103
107
  # Plot an explicit TROPOMI date range.
104
108
  rsplot raster 长三角 20260101-20260131 -p no2 -o no2_yrd_202601.png
105
109
 
110
+ # Plot gridded air-quality forecast initialized at a specific hour.
111
+ rsplot forecast 安徽 2026063000 --lead 24 --var O3 -o forecast_anhui_o3.png
112
+
113
+ # Date-only forecast input automatically selects the latest initialized hour.
114
+ rsplot forecast 合肥 20260630 --lead 72 --var PM2.5 -o forecast_hefei_pm25.png
115
+
116
+ # Overlay station observations on the forecast valid time.
117
+ rsplot forecast 合肥 2026041409 --lead 6 --var O3 --station-overlay -o forecast_station_hefei_o3.png
118
+
106
119
  # Plot national monitoring station observations.
107
120
  rsplot station 合肥 2026041415 --var O3 -o station_hefei_o3.png
108
121
 
122
+ # Overlay hourly ERA5 10 m wind vectors on station observations.
123
+ # Station timestamps default to Asia/Shanghai and are matched to ERA5 UTC.
124
+ rsplot station 合肥 2026041415 --var O3 --wind-level 10m -o station_wind_hefei_o3.png
125
+
126
+ # Pressure-level wind is also supported (1000/925/850/700/500 hPa).
127
+ rsplot station 安徽 2026041415 --var PM2.5 --wind-level 850 -o station_wind_anhui_pm25.png
128
+
109
129
  # Overlay satellite raster data and station observations.
110
130
  rsplot overlay 合肥 2026041415 -p no2 --var NO2 -o overlay_hefei_no2.png
111
131
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "rsplot"
3
- version = "0.2.5"
3
+ version = "0.2.7"
4
4
  description = "CLI tool for plotting Remote Sensing data, designed for Agent."
5
5
  authors = [
6
6
  { name = "Yaoyao Hu", email = "yaoyhu@mail.ustc.edu.cn" },