Skip to main content

A custom library for accessing the ClimateSERV API

Project description

climateservAccess

Python: 3.7 License: MIT

About

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.

Documentation

datatypeDict

Stores a dictionary with all datatype numbers and names (see Reference)

getDataFrame

Accesses requested data through ClimateSERV API and returns it in a pandas dataframe (see Example Code). Returns None if no data found.

Parameters

  • 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

getCSV

Accesses requested data through ClimateSERV API and saves it to a csv file.

Parameters

  • 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

getBox

Returns a list with coordinates for a square centered at (lon, lat), with width res

Parameters

  • lat (float): Latitude.
  • lon (float): Longitude.
  • res (float): Resolution.

Example Code

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()

Reference

List of datatypes also available under ClimateSERV Developers API.

Historical Datasets

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

Forecast Datasets

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

License

Distributed under the MIT License. See LICENSE.txt for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

climateservaccess-1.0.4.tar.gz (6.9 kB view hashes)

Uploaded Source

Built Distribution

climateservaccess-1.0.4-py3-none-any.whl (7.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page