goesgcp 2.0.0__py3-none-any.whl → 2.0.1__py3-none-any.whl
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.
- goesgcp/main.py +24 -9
- {goesgcp-2.0.0.dist-info → goesgcp-2.0.1.dist-info}/METADATA +34 -8
- goesgcp-2.0.1.dist-info/RECORD +8 -0
- goesgcp-2.0.0.dist-info/RECORD +0 -8
- {goesgcp-2.0.0.dist-info → goesgcp-2.0.1.dist-info}/LICENSE +0 -0
- {goesgcp-2.0.0.dist-info → goesgcp-2.0.1.dist-info}/WHEEL +0 -0
- {goesgcp-2.0.0.dist-info → goesgcp-2.0.1.dist-info}/entry_points.txt +0 -0
- {goesgcp-2.0.0.dist-info → goesgcp-2.0.1.dist-info}/top_level.txt +0 -0
goesgcp/main.py
CHANGED
|
@@ -295,14 +295,14 @@ def main():
|
|
|
295
295
|
global output_path, var_name, \
|
|
296
296
|
lat_min, lat_max, lon_min, lon_max, \
|
|
297
297
|
max_attempts, parallel, recent, resolution, storage_client, \
|
|
298
|
-
satellite, product,
|
|
298
|
+
satellite, product, op_mode, channel, save_format
|
|
299
299
|
|
|
300
300
|
epilog = """
|
|
301
301
|
Example usage:
|
|
302
302
|
|
|
303
303
|
- To download recent 3 files from the GOES-16 satellite for the ABI-L2-CMIPF product:
|
|
304
304
|
|
|
305
|
-
goesgcp --satellite goes16 --product ABI-L2-CMIP --recent 3
|
|
305
|
+
goesgcp --satellite goes16 --product ABI-L2-CMIP --recent 3
|
|
306
306
|
|
|
307
307
|
- To download files from the GOES-16 satellite for the ABI-L2-CMIPF product between 2022-12-15 and 2022-12-20:
|
|
308
308
|
|
|
@@ -310,6 +310,23 @@ def main():
|
|
|
310
310
|
|
|
311
311
|
"""
|
|
312
312
|
|
|
313
|
+
product_names = [
|
|
314
|
+
"ABI-L1b-RadF", "ABI-L1b-RadC", "ABI-L1b-RadM", "ABI-L2-ACHAC", "ABI-L2-ACHAF", "ABI-L2-ACHAM",
|
|
315
|
+
"ABI-L2-ACHTF", "ABI-L2-ACHTM", "ABI-L2-ACMC", "ABI-L2-ACMF", "ABI-L2-ACMM", "ABI-L2-ACTPC",
|
|
316
|
+
"ABI-L2-ACTPF", "ABI-L2-ACTPM", "ABI-L2-ADPC", "ABI-L2-ADPF", "ABI-L2-ADPM", "ABI-L2-AICEF",
|
|
317
|
+
"ABI-L2-AITAF", "ABI-L2-AODC", "ABI-L2-AODF", "ABI-L2-BRFC", "ABI-L2-BRFF", "ABI-L2-BRFM",
|
|
318
|
+
"ABI-L2-CMIPC", "ABI-L2-CMIPF", "ABI-L2-CMIPM", "ABI-L2-CODC", "ABI-L2-CODF", "ABI-L2-CPSC",
|
|
319
|
+
"ABI-L2-CPSF", "ABI-L2-CPSM", "ABI-L2-CTPC", "ABI-L2-CTPF", "ABI-L2-DMWC", "ABI-L2-DMWF",
|
|
320
|
+
"ABI-L2-DMWM", "ABI-L2-DMWVC", "ABI-L2-DMWVF", "ABI-L2-DMWVF", "ABI-L2-DSIC", "ABI-L2-DSIF",
|
|
321
|
+
"ABI-L2-DSIM", "ABI-L2-DSRC", "ABI-L2-DSRF", "ABI-L2-DSRM", "ABI-L2-FDCC", "ABI-L2-FDCF",
|
|
322
|
+
"ABI-L2-FDCM", "ABI-L2-LSAC", "ABI-L2-LSAF", "ABI-L2-LSAM", "ABI-L2-LSTC", "ABI-L2-LSTF",
|
|
323
|
+
"ABI-L2-LSTM", "ABI-L2-LVMPC", "ABI-L2-LVMPF", "ABI-L2-LVMPM", "ABI-L2-LVTPC", "ABI-L2-LVTPF",
|
|
324
|
+
"ABI-L2-LVTPM", "ABI-L2-MCMIPC", "ABI-L2-MCMIPF", "ABI-L2-MCMIPM", "ABI-L2-RRQPEF",
|
|
325
|
+
"ABI-L2-RSRC", "ABI-L2-RSRF", "ABI-L2-SSTF", "ABI-L2-TPWC", "ABI-L2-TPWF", "ABI-L2-TPWM",
|
|
326
|
+
"ABI-L2-VAAF", "EXIS-L1b-SFEU", "EXIS-L1b-SFXR", "GLM-L2-LCFA", "MAG-L1b-GEOF", "SEIS-L1b-EHIS",
|
|
327
|
+
"SEIS-L1b-MPSH", "SEIS-L1b-MPSL", "SEIS-L1b-SGPS", "SUVI-L1b-Fe093", "SUVI-L1b-Fe131",
|
|
328
|
+
"SUVI-L1b-Fe171", "SUVI-L1b-Fe195", "SUVI-L1b-Fe284", "SUVI-L1b-He303"
|
|
329
|
+
]
|
|
313
330
|
|
|
314
331
|
# Set arguments
|
|
315
332
|
parser = argparse.ArgumentParser(description='Converts GOES-16 L2 data to netCDF',
|
|
@@ -317,11 +334,10 @@ def main():
|
|
|
317
334
|
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
318
335
|
|
|
319
336
|
# Satellite and product settings
|
|
320
|
-
parser.add_argument('--satellite', type=str, default='goes-16', help='Name of the satellite (e.g., goes16)')
|
|
321
|
-
parser.add_argument('--product', type=str, default='ABI-L2-CMIP', help='Name of the satellite product')
|
|
337
|
+
parser.add_argument('--satellite', type=str, default='goes-16', choices=['goes-16', 'goes-18'], help='Name of the satellite (e.g., goes16)')
|
|
338
|
+
parser.add_argument('--product', type=str, default='ABI-L2-CMIP', help='Name of the satellite product', choices=product_names)
|
|
322
339
|
parser.add_argument('--var_name', type=str, default='CMI', help='Variable name to extract (e.g., CMI)')
|
|
323
340
|
parser.add_argument('--channel', type=int, default=13, help='Channel to use (e.g., 13)')
|
|
324
|
-
parser.add_argument('--domain', type=str, default='F', help='Domain to use (e.g., F or C)')
|
|
325
341
|
parser.add_argument('--op_mode', type=str, default='M6C', help='Operational mode to use (e.g., M6C)')
|
|
326
342
|
|
|
327
343
|
# Recent files settings
|
|
@@ -361,7 +377,6 @@ def main():
|
|
|
361
377
|
output_path = args.output
|
|
362
378
|
satellite = args.satellite
|
|
363
379
|
product = args.product
|
|
364
|
-
domain = args.domain
|
|
365
380
|
op_mode = args.op_mode
|
|
366
381
|
channel = str(args.channel).zfill(2)
|
|
367
382
|
var_name = args.var_name
|
|
@@ -403,16 +418,16 @@ def main():
|
|
|
403
418
|
sys.exit(1)
|
|
404
419
|
|
|
405
420
|
# Set pattern for the files
|
|
406
|
-
pattern = "OR_"+product+
|
|
421
|
+
pattern = "OR_"+product+"-"+op_mode+channel+"_G" + satellite[-2:]
|
|
407
422
|
|
|
408
423
|
# Check operational mode if is recent or specific date
|
|
409
424
|
if start and end:
|
|
410
425
|
files_list = get_files_period(storage_client, bucket_name,
|
|
411
|
-
product
|
|
426
|
+
product, pattern, start, end,
|
|
412
427
|
bt_hour, bt_min, freq)
|
|
413
428
|
else:
|
|
414
429
|
# Get recent files
|
|
415
|
-
files_list = get_recent_files(storage_client, bucket_name, product
|
|
430
|
+
files_list = get_recent_files(storage_client, bucket_name, product, pattern, recent)
|
|
416
431
|
|
|
417
432
|
# Check if any files were found
|
|
418
433
|
if not files_list:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: goesgcp
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: A package to download and process GOES-16/17 data
|
|
5
5
|
Home-page: https://github.com/helvecioneto/goesgcp
|
|
6
6
|
Author: Helvecio B. L. Neto
|
|
@@ -33,18 +33,32 @@ Dynamic: requires-dist
|
|
|
33
33
|
Dynamic: summary
|
|
34
34
|
|
|
35
35
|
# goesgcp
|
|
36
|
+
<!-- badges: start -->
|
|
37
|
+
[](https://pypi.python.org/pypi/goesgcp)
|
|
38
|
+
[](https://pypi.python.org/pypi/goesgcp)
|
|
39
|
+
[](https://github.com/helvecioneto/goesgcp/graphs/contributors)
|
|
40
|
+
[](https://github.com/helvecioneto/goesgcp/blob/main/LICENSE)
|
|
41
|
+
<!-- badges: end -->
|
|
36
42
|
|
|
37
|
-
goesgcp is a utility script for downloading and reprojecting GOES-R satellite data. The script uses the `google.cloud` library to download data from the Google Cloud Platform (GCP) and the `pyproj` library to reproject the data to EPSG:4326 and crop it to a specified bounding box.
|
|
38
43
|
|
|
44
|
+
`goesgcp` is a Python utility designed for downloading and reprojecting GOES-R satellite data. This script leverages the `google.cloud` library for accessing data from the Google Cloud Platform (GCP) and `pyproj` for reprojecting data to EPSG:4326, as well as cropping it to a user-defined bounding box.
|
|
45
|
+
|
|
46
|
+
## Features
|
|
47
|
+
|
|
48
|
+
- **Download GOES-R satellite data**: Supports GOES-16 and GOES-17.
|
|
49
|
+
- **Reprojection and cropping**: Reprojects data to EPSG:4326 and crops to a specified bounding box.
|
|
50
|
+
- **Flexible command-line interface**: Customize download options, variables, channels, time range, and output format.
|
|
51
|
+
- **Efficient processing**: Handles large datasets with optimized performance.
|
|
39
52
|
|
|
40
53
|
## Installation
|
|
41
54
|
|
|
42
|
-
|
|
55
|
+
Install the necessary dependencies via `pip`:
|
|
43
56
|
|
|
44
57
|
```bash
|
|
45
58
|
pip install goesgcp
|
|
46
59
|
```
|
|
47
60
|
|
|
61
|
+
|
|
48
62
|
## Usage
|
|
49
63
|
|
|
50
64
|
### Command-Line Arguments
|
|
@@ -74,19 +88,31 @@ goesgcp [OPTIONS]
|
|
|
74
88
|
| `--bt_minute` | Minute of the hour to download data (default: [0, 15, 30, 45]). |
|
|
75
89
|
| `--save_format` | Format for saving output files (default: `by_date`). |
|
|
76
90
|
|
|
91
|
+
#### Available GOES Products
|
|
92
|
+
A comprehensive list of available GOES products can be found at the following link: [https://github.com/awslabs/open-data-docs/tree/main/docs/noaa/noaa-goes16](https://github.com/awslabs/open-data-docs/tree/main/docs/noaa/noaa-goes16)
|
|
93
|
+
|
|
77
94
|
### Examples
|
|
78
95
|
|
|
79
|
-
|
|
96
|
+
#### Download Recent Data
|
|
97
|
+
In the example below, the command downloads the 3 most recent files from the GOES-16 satellite for the product ABI-L2-CMIPF. It focuses on the variable CMI (Cloud and Moisture Imagery) from channel 13, which is commonly used for infrared observations. The downloaded files are saved to the specified output directory output/.
|
|
80
98
|
|
|
81
99
|
```bash
|
|
82
|
-
goesgcp --satellite
|
|
100
|
+
goesgcp --satellite goes-16 --product ABI-L2-CMIPF --var_name CMI --channel 13 --recent 3 --output "output/"
|
|
83
101
|
```
|
|
84
102
|
|
|
85
|
-
|
|
103
|
+
#### Download Data for a Specific Time Range
|
|
104
|
+
This command retrieves GOES-16 satellite data for the product ABI-L2-CMIPF within the date range 2022-12-15 00:00:00 to 2022-12-20 10:00:00, focusing on hours 5:00 and 6:00 AM. The data is cropped to the geographic bounds of -35° to 5° latitude and -80° to -30° longitude, reprojected with a resolution of 0.045 degrees, and saved in a by_date format for easy organization.
|
|
86
105
|
|
|
87
106
|
```bash
|
|
88
|
-
goesgcp --start '2022-12-15 00:00:00' --end '2022-12-20 10:00:00' --bt_hour 5 6 --save_format by_date --resolution 0.045 --lat_min -35 --lat_max 5 --lon_min -80 --lon_max -30
|
|
107
|
+
goesgcp --satellite goes-16 --product ABI-L2-CMIPF --start '2022-12-15 00:00:00' --end '2022-12-20 10:00:00' --bt_hour 5 6 --save_format by_date --resolution 0.045 --lat_min -35 --lat_max 5 --lon_min -80 --lon_max -30
|
|
89
108
|
```
|
|
90
109
|
|
|
110
|
+
### Contributing
|
|
111
|
+
Contributions are welcome! If you encounter issues or have suggestions for improvements, please submit them via GitHub issues or pull requests.
|
|
112
|
+
|
|
91
113
|
### Credits
|
|
92
|
-
|
|
114
|
+
This project was developed and optimized by Helvecio Neto (2025).
|
|
115
|
+
It builds upon NOAA GOES-R data and leverages resources provided by the Google Cloud Platform.
|
|
116
|
+
|
|
117
|
+
### License
|
|
118
|
+
This project is licensed under the MIT License.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
goesgcp/__init__.py,sha256=MigXIT7A1M9YZuH2MyjKReSziFwzbZX2boVYsLosR6s,22
|
|
2
|
+
goesgcp/main.py,sha256=F2Z0J4DVF2oeejlIN6WEXi3K8eueZxGWIH5JulEWhXE,18178
|
|
3
|
+
goesgcp-2.0.1.dist-info/LICENSE,sha256=AHeZifD4UyBZI61Ug5lETXgX3Anp_XfAvFXQqrW9AnU,1078
|
|
4
|
+
goesgcp-2.0.1.dist-info/METADATA,sha256=a1MA1uUCdoG5Ihpr8szCYyVpzjCkmSePv0EnNZTKaLo,6149
|
|
5
|
+
goesgcp-2.0.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
6
|
+
goesgcp-2.0.1.dist-info/entry_points.txt,sha256=6afMW51WnUR9VZ_xvDoiB8JQb2OFiLuzRtV6dPL__OQ,46
|
|
7
|
+
goesgcp-2.0.1.dist-info/top_level.txt,sha256=C-C3vipI0AwEDW9nWFkJ6D0TkcKkIYlyyM15LMskUEc,8
|
|
8
|
+
goesgcp-2.0.1.dist-info/RECORD,,
|
goesgcp-2.0.0.dist-info/RECORD
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
goesgcp/__init__.py,sha256=MigXIT7A1M9YZuH2MyjKReSziFwzbZX2boVYsLosR6s,22
|
|
2
|
-
goesgcp/main.py,sha256=5vCAcSuMgFRzTLKZL4IUGgXVBxM3Buw19l-2MrpGR9M,16837
|
|
3
|
-
goesgcp-2.0.0.dist-info/LICENSE,sha256=AHeZifD4UyBZI61Ug5lETXgX3Anp_XfAvFXQqrW9AnU,1078
|
|
4
|
-
goesgcp-2.0.0.dist-info/METADATA,sha256=fgCGPkdI51BKwv7kpgiZgHP9WZbXhSdWcxkPhaZ2fKk,4066
|
|
5
|
-
goesgcp-2.0.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
6
|
-
goesgcp-2.0.0.dist-info/entry_points.txt,sha256=6afMW51WnUR9VZ_xvDoiB8JQb2OFiLuzRtV6dPL__OQ,46
|
|
7
|
-
goesgcp-2.0.0.dist-info/top_level.txt,sha256=C-C3vipI0AwEDW9nWFkJ6D0TkcKkIYlyyM15LMskUEc,8
|
|
8
|
-
goesgcp-2.0.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|