Download meteorological data from NASA POWER restful API (https://power.larc.nasa.gov/) using pynasapower API client.
The NASA POWER database is a global database of daily meteorological data designed for agrometeorological applications and more. Data are retrieced from in-situ observations in combination with satellite data. For more information on the NASA POWER database see the documentation at: https://power.larc.nasa.gov/.
git clone https://github.com/alekfal/pynasapower.git
cd pynasapower/
pip install .
pip install pynasapower
geometry
: Single point or polygon geometry asgeopandas.GeoDataFrame
. User can use methods pynasapower.geometry.point() or pynasapower.geometry.bbox() to create an input geometry for this client.start
: Start date asdatetime.date
format. In the examples the value isdatetime.date(2022, 1, 1)
.- end: End date as
datetime.date
format. In the examples the value isdatetime.date(2022, 2, 1)
. path
: Local path to store the downloaded data. In the examples"./"
is used.to_file
: Boolean argument to save data locally. By default isTrue
.community
: The default POWERcommunity
is agroclimatology ("ag"
). Other available communities are sustainable buildings ("sb"
) and renewable energy ("re"
). Find more about the POWER communities here.parameters
: The default parameters for downloading (["TOA_SW_DWN", "ALLSKY_SFC_SW_DWN", "T2M", "T2M_MIN", "T2M_MAX", "T2MDEW", "WS2M", "PRECTOTCORR"]
) are selected for downloading if an empty list ([]
) is provided by the user. Find more for the POWER parameters in here.- temporal_api: Temporal resolution of the data. The default value is
"daily"
. Other selections are"hourly"
,"monthly"
,"climatology"
. Read more about the temporal resolution of the data here. spatial_api
: Spatial resolution of the data. By default"point"
is selected, but a user can also use"regional"
. Note that in order to download a region a polygon geometry must be used in thegeometry
argument.format
: Output format of the data. The default is"csv"
. Other selections supported by the API client are:"netcdf"
,"json"
and"ascii"
.
Download meteorological data for a point in Athens, Greece and save result in *.csv
format.
First, create a "data" folder to hold the POWER data upon download in your current environment.
$ mkdir data
Then, run in Python the following to fetch data from NASA POWER:
from pynasapower.get_data import query_power
from pynasapower.geometry import point, bbox
import datetime
# Run for point in Athens and save the result in csv format
gpoint = point(23.727539, 37.983810, "EPSG:4326")
start = datetime.date(2022, 1, 1)
end = datetime.date(2022, 2, 1)
data = query_power(geometry = gpoint, start = start, end = end, path = "./data", to_file = True, community = "ag", parameters = [], temporal_api = "daily", spatial_api = "point", format = "csv")
Download meteorological data for a polygon in Athens, Greece and save result in *.csv
format.
# Run for small bbox in Athens and save the result in csv format
gbbox = bbox(23.727539, 26.73, 37.983810, 40.99, "EPSG:4326")
start = datetime.date(2022, 1, 1)
end = datetime.date(2022, 2, 1)
data = query_power(geometry = gbbox, start = start, end = end, path = "./data", to_file = True, community = "ag", parameters = [], temporal_api = "daily", spatial_api = "point", format = "csv")
Read more about the software in project's readthedocs.