A python package to access data through ClimateSERV API. Built as a more complete, customized version of the existing climateserv package by SERVIR, which did not support all datatypes.
Stores a dictionary with all datatype numbers and names (see Reference)
Accesses requested data through ClimateSERV API and returns it in a pandas dataframe (see Example Code). Returns None if no data found.
- data_type (int): Datatype number
- start_date (str): Start date in MM/DD/YYYY format
- end_date (str): End date in MM/DD/YYYY format
- operation_type (string): 'Average', 'Min', or 'Max'
- geometry_coords (list): List of coordinates for polygon
Accesses requested data through ClimateSERV API and saves it to a csv file.
- data_type (int): Datatype number
- start_date (str): Start date in MM/DD/YYYY format
- end_date (str): End date in MM/DD/YYYY format
- operation_type (string): 'Average', 'Min', or 'Max'
- geometry_coords (list): List of coordinates for polygon
- filename (str): Name of the CSV file to be saved
Returns a list with coordinates for a square centered at (lon, lat), with width res
- lat (float): Latitude.
- lon (float): Longitude.
- res (float): Resolution.
This code snippet retrieves Stonehenge precipitation data from ClimateSERV (NASA_IMERG_Late), stores it in a pandas dataframe, and plots the data for the month of January 2023.
import pandas as pd
import matplotlib.pyplot as plt
import climateservaccess as ca
# Define parameters
data_type = 26 # see ca.datatypeDict for data types
start_date = '01/01/2023'
end_date = '01/30/2023'
operation_type = 'average' # valid options are: 'average', 'max', 'min'
lat = 51.17912455395276 # latitude of Stonehenge
lon = -1.8262705029300066 # longitude of Stonehenge
res = 0.01 # resolution in degrees
polygon = ca.getBox(lat, lon, res) # defines box of width res around lat, lon
# Get dataframe with data from ClimateSERV
df = ca.getDataFrame(data_type, start_date, end_date, operation_type, polygon)
# Select data from df and store inside data_df
data_df = pd.DataFrame(df['data'].to_list())
# Convert the date column to datetime format
data_df['date'] = pd.to_datetime(data_df['date'])
# Plot the data
plt.figure(figsize=(10,5))
plt.plot(data_df['date'], data_df['raw_value'])
plt.xlabel('Date')
plt.ylabel('Precipitation (mm)')
plt.title('Average Daily Precipitation of Stonehenge')
plt.show()
List of datatypes also available under ClimateSERV Developers API.
| Datatype Number | Datatype | Data Availability | Date Range |
|---|---|---|---|
| 0 | CHIRPS_Rainfall | Every 1 day | 1981 - Near Present |
| 1 | eMODIS_NDVI_W_Africa | Every 10 days | 2002 - September 2022 |
| 2 | eMODIS_NDVI_E_Africa | Every 10 days | 2002 - September 2022 |
| 5 | eMODIS_NDVI_S_Africa | Every 10 days | 2002 - September 2022 |
| 26 | NASA_IMERG_Late | Every 1 day | 2000 - Near Present |
| 28 | eMODIS_NDVI_Central_Asia | Every 10 days | 2002 - September 2022 |
| 29 | ESI_4WEEK | Every 7 days | 2000 - Present |
| 31 | CHIRPS_GEFS_Forecast_Mean_Anom | Every 1 day | 1985 - Near Present |
| 32 | CHIRPS_GEFS_Forecast_Mean_Precip | Every 1 day | 1985 - Near Present |
| 33 | ESI_12WEEK | Every 7 days | 2000 - Present |
| 37 | USDA_SMAP_Soil_Moisture_Profile | Every 3 days | March 2015 - August 2022 |
| 38 | USDA_SMAP_Surface_Soil_Moisture | Every 3 days | March 2015 - August 2022 |
| 39 | USDA_SMAP_Surface_Soil_Moisture_Anom | Every 3 days | March 2015 - August 2022 |
| 40 | USDA_SMAP_Sub_Surface_Soil_Moisture | Every 3 days | March 2015 - August 2022 |
| 41 | USDA_SMAP_Sub_Surface_Soil_Moisture_Anom | Every 3 days | March 2015 - August 2022 |
| 90 | UCSB_CHIRP_Rainfall | Every 1 day | 1981 - Near Present |
| 91 | NASA_IMERG_Early | Every 1 day | 2000 - Near Present |
| 541 | NSIDC_SMAP_Sentinel_1Km | Every 1 day | 2015 - Near Present |
| 542 | NSIDC_SMAP_Sentinel_1Km_15_day | Every 15 days | 2015 - Near Present |
| 661 | LIS_ET | Every 1 day | 2000 - Near Present |
| 662 | LIS_Baseflow | Every 1 day | 2000 - Near Present |
| 663 | LIS_Runoff | Every 1 day | 2000 - Near Present |
| 664 | LIS_Soil_Moisture_0_10cm | Every 1 day | 2000 - Near Present |
| 665 | LIS_Soil_Moisture_10_40cm | Every 1 day | 2000 - Near Present |
| 666 | LIS_Soil_Moisture_40_100cm | Every 1 day | 2000 - Near Present |
| 667 | LIS_Soil_Moisture_100_200cm | Every 1 day | 2000 - Near Present |
These NMME (North American Multi-Model Ensemble) datasets all provide daily forecasts up to 6 months out.
| Datatype Number | Datatype |
|---|---|
| 6 | CCSM_Ensemble_1_Temperature |
| 7 | CCSM_Ensemble_1_Precipitation |
| 8 | CCSM_Ensemble_2_Temperature |
| 9 | CCSM_Ensemble_2_Precipitation |
| 10 | CCSM_Ensemble_3_Temperature |
| 11 | CCSM_Ensemble_3_Precipitation |
| 12 | CCSM_Ensemble_4_Temperature |
| 13 | CCSM_Ensemble_4_Precipitation |
| 14 | CCSM_Ensemble_5_Temperature |
| 15 | CCSM_Ensemble_5_Precipitation |
| 16 | CCSM_Ensemble_6_Temperature |
| 17 | CCSM_Ensemble_6_Precipitation |
| 18 | CCSM_Ensemble_7_Temperature |
| 19 | CCSM_Ensemble_7_Precipitation |
| 20 | CCSM_Ensemble_8_Temperature |
| 21 | CCSM_Ensemble_8_Precipitation |
| 22 | CCSM_Ensemble_9_Temperature |
| 23 | CCSM_Ensemble_9_Precipitation |
| 24 | CCSM_Ensemble_10_Temperature |
| 25 | CCSM_Ensemble_10_Precipitation |
| 42 | CFSv2_Ensemble_1_Temperature |
| 43 | CFSv2_Ensemble_1_Precipitation |
| 44 | CFSv2_Ensemble_2_Temperature |
| 45 | CFSv2_Ensemble_2_Precipitation |
| 46 | CFSv2_Ensemble_3_Temperature |
| 47 | CFSv2_Ensemble_3_Precipitation |
| 48 | CFSv2_Ensemble_4_Temperature |
| 49 | CFSv2_Ensemble_4_Precipitation |
| 50 | CFSv2_Ensemble_5_Temperature |
| 51 | CFSv2_Ensemble_5_Precipitation |
| 52 | CFSv2_Ensemble_6_Temperature |
| 53 | CFSv2_Ensemble_6_Precipitation |
| 54 | CFSv2_Ensemble_7_Temperature |
| 55 | CFSv2_Ensemble_7_Precipitation |
| 56 | CFSv2_Ensemble_8_Temperature |
| 57 | CFSv2_Ensemble_8_Precipitation |
| 58 | CFSv2_Ensemble_9_Temperature |
| 59 | CFSv2_Ensemble_9_Precipitation |
| 60 | CFSv2_Ensemble_10_Temperature |
| 61 | CFSv2_Ensemble_10_Precipitation |
| 62 | CFSv2_Ensemble_11_Temperature |
| 63 | CFSv2_Ensemble_11_Precipitation |
| 64 | CFSv2_Ensemble_12_Temperature |
| 65 | CFSv2_Ensemble_12_Precipitation |
| 66 | CFSv2_Ensemble_13_Temperature |
| 67 | CFSv2_Ensemble_13_Precipitation |
| 68 | CFSv2_Ensemble_14_Temperature |
| 69 | CFSv2_Ensemble_14_Precipitation |
| 70 | CFSv2_Ensemble_15_Temperature |
| 71 | CFSv2_Ensemble_15_Precipitation |
| 72 | CFSv2_Ensemble_16_Temperature |
| 73 | CFSv2_Ensemble_16_Precipitation |
| 74 | CFSv2_Ensemble_17_Temperature |
| 75 | CFSv2_Ensemble_17_Precipitation |
| 76 | CFSv2_Ensemble_18_Temperature |
| 77 | CFSv2_Ensemble_18_Precipitation |
| 78 | CFSv2_Ensemble_19_Temperature |
| 79 | CFSv2_Ensemble_19_Precipitation |
| 80 | CFSv2_Ensemble_20_Temperature |
| 81 | CFSv2_Ensemble_20_Precipitation |
| 82 | CFSv2_Ensemble_21_Temperature |
| 83 | CFSv2_Ensemble_21_Precipitation |
| 84 | CFSv2_Ensemble_22_Temperature |
| 85 | CFSv2_Ensemble_22_Precipitation |
| 86 | CFSv2_Ensemble_23_Temperature |
| 87 | CFSv2_Ensemble_23_Precipitation |
| 88 | CFSv2_Ensemble_24_Temperature |
| 89 | CFSv2_Ensemble_24_Precipitation |
Distributed under the MIT License. See LICENSE.txt for more information.