https://github.com/helvecioneto/goesgcp
Library to download goes Satellite data from Google Cloud Platform
https://github.com/helvecioneto/goesgcp
Last synced: 4 months ago
JSON representation
Library to download goes Satellite data from Google Cloud Platform
- Host: GitHub
- URL: https://github.com/helvecioneto/goesgcp
- Owner: helvecioneto
- License: mit
- Created: 2024-12-12T12:29:08.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-09T15:09:40.000Z (about 1 year ago)
- Last Synced: 2026-01-16T21:51:34.204Z (5 months ago)
- Language: Python
- Size: 8.58 MB
- Stars: 10
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# goesgcp
[](https://pypi.python.org/pypi/goesgcp)
[](https://pypi.python.org/pypi/goesgcp)
[](https://github.com/helvecioneto/goesgcp/actions/workflows/python-publish.yml)
[](https://github.com/helvecioneto/goesgcp/graphs/contributors)
[](https://github.com/helvecioneto/goesgcp/blob/main/LICENSE)
`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 `rioxarray` for reprojecting data to EPSG:4326 (rectangular grid), as well cropping it to a user-defined bounding box.
## Features
- **Download GOES-R satellite data**: Supports GOES-16 and GOES-18.
- **Reprojection and cropping**: Reprojects data to EPSG:4326 and crops to a specified bounding box.
- **Flexible command-line interface**: Customize download options, variables, channels, time range, and output format.
- **Efficient processing**: Handles large datasets with optimized performance.
## Installation
Install the package via `pip`:
```bash
pip install goesgcp
```
Obs: If gdal is not installed, you can install it using the following command:
Linux:
```bash
sudo apt-get install gdal-bin
```
Windows:
```bash
conda install -c conda-forge gdal
```
MacOS:
```bash
brew install gdal
```
Or you can install the wheel file:
```bash
python -m pip install gdal -f https://girder.github.io/large_image_wheels
```
and install other dependencies:
```bash
pip install -r requirements.txt
```
## Usage
### Available Command-Line Arguments
The script uses the `argparse` module for handling command-line arguments. Below are the available options:
```bash
goesgcp [OPTIONS]
```
| Option | Description |
|----------------------|----------------------------------------------------------------------------|
| `--satellite` | Name of the satellite (e.g., goes16). |
| `--product` | Name of the satellite product (e.g., ABI-L2-CMIPF). |
| `--var_name` | Variable name to extract (e.g., CMI). |
| `--channel` | Channel to use (e.g., 13). |
| `--output` | Path for saving output files (default: `output/`). |
| `--lat_min` | Minimum latitude of the bounding box (default: `-56`). |
| `--lat_max` | Maximum latitude of the bounding box (default: `35`). |
| `--lon_min` | Minimum longitude of the bounding box (default: `-116`). |
| `--lon_max` | Maximum longitude of the bounding box (default: `-25`). |
| `--resolution` | Set the reprojet data resolution in degree (default: `-0.045`). |
| `--recent` | Number of most recent data to download (default: `1`). |
| `--start` | Start date for downloading data (default: `None`). |
| `--end` | End date for downloading data (default: `None`). |
| `--bt_hour` | Hour of the day to download data (default: [0, 1, ..., 23]). |
| `--bt_minute` | Minute of the hour to download data (default: [0, 15, 30, 45]). |
| `--save_format` | Format for saving output files (default: `by_date`). |
| `--remap` | Remap the data based on file (This function are in development). |
#### Available GOES Products
A comprehensive list of available GOES products can be found at the following link: [https://console.cloud.google.com/storage/browser/gcp-public-data-goes-16](https://console.cloud.google.com/storage/browser/gcp-public-data-goes-16)
### Examples
#### Download Recent Data
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/.
```bash
goesgcp --satellite goes-16 --recent 3 --product ABI-L2-CMIPF --var_name CMI --channel 13 --output "output/"
```
#### Download Data for a Specific Time Range
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-15 12: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.
```bash
goesgcp --satellite goes-16 --product ABI-L2-CMIPF --start "2022-12-15 00:00:00" --end "2022-12-15 12: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
```
### Contributing
Contributions are welcome! If you encounter issues or have suggestions for improvements, please submit them via GitHub issues or pull requests.
### Credits
This project was developed and optimized by Helvecio Neto (2025).
It builds upon NOAA GOES-R data and leverages resources provided by the Google Cloud Platform.
### License
This project is licensed under the MIT License.