Precipitation Data Component with NASA POWER API

Inspired by this thread, thanks to @RafaelA @chris @mostapha and others.

Lately I found NASA POWER Project, where precipitation data can be downloaded from. (The database surely contains other parameters, but precipitation is primarily what I’m currently looking for).

The database also has hourly data, and time period can be selected.

The approach is pretty much the same as @RafaelA’s version, CSV format is used.
The component requests the appropriate data according to the location, which is downloaded in a .csv format and read back into Grasshopper (i.e. The EPW location is used).

Below is how it looks in GH (Interval = Daily).
Precipitation NASA POWER.gh (48.8 KB)

Since I’m not from a coding background,
some obstacles remaining and I hope people can help :pray::

  1. Leap Year -
    I don’t know how EPW deals with 2/29, but in the case above, I hope there’s a way to automatically filter out the data for 2/29 to fit into the overall 365/8760 system.

  2. Hourly Data -
    Below is the hourly data downloaded in CSV format.
    (The time period entered is 2021/1/1 - 2021/12/31)


    As you can see, the first hour starts at 8 am (sunrise?) and ends at 2022/1/1 @7 am. Although it’s artificial, perhaps there’s a way to move those later hours to the front so that the entire dataset fits into the correct 8760 order?"

  3. Data Request Method -
    Since the POWER API allows external application developers and users to directly connect and interact with POWER’s Data Archive, I believe the workflow “download > read” can be improved.

  4. Matching EPW Model Year -
    Since EPW files are synthesized from real recorded data from different years in a given climate (monthly), perhaps the data request time extension can be set accordingly? January 1, 2001, appears to be the earliest date for the available data.

I would greatly appreciate it if you could provide feedback and ideas regarding the above.

Hi @tutu7931 ,

There are too many questions here to give a concise answer but all obstacles can be overcome if you’re willing to put in a little time to learn. Things like sorting based on datetime will probably help you with a lot of things.

I also had no coding background 10 years ago. For a reference, this was the Python scripting playlist that got me started coding Python myself:

Also, remember to search stackoverflow if you get stuck. And this section of the Ladybug Tools SDK might be particularly helpful to you:
https://www.ladybug.tools/ladybug/docs/

I recommend checking out the datacollection and epw modules in particular.