{ "cells": [ { "cell_type": "markdown", "id": "c4ad226a", "metadata": {}, "source": [ "## Background" ] }, { "cell_type": "markdown", "id": "c5835dbf", "metadata": {}, "source": [ "Author: Diane Menuz \n", "Date: 7/23/2026 \n", "Goal: Download [forcing variables](https://ldas.gsfc.nasa.gov/nldas/v2/forcing) from NLDAS and use to calculate hourly ETo with refet package \n", " \n", "Downloads are based on this nasa [tutorial](https://github.com/nasa/gesdisc-tutorials/blob/main/notebooks/How_to_Access_GiC_Time_Series_Service.ipynb) \n", " \n", "NLDAS data are returned as UTC and refet uses UTC for calculations." ] }, { "cell_type": "markdown", "id": "38984fb0", "metadata": {}, "source": [ "Initial Set Up\n", "- Register for an [Earthdata](https://urs.earthdata.nasa.gov/) account\n", "- Log in to account and generate a token\n", "- Copy token as parameter into script below; note that tokens are good for a limited \n", "period of time\n", "- If call_nldas_time_series throws an error, you may need to turn on some apps under the \n", "Authorized Apps in your Earthdata account. I experimented with turning on the following \n", "but in the end did not need any of them:\n", " - Giovanni\n", " - NASA GESDISC DATA ARCHIVE\t \n", " - Hyrax in the cloud\t \n", " - New Harmony Giovanni Adapter" ] }, { "cell_type": "markdown", "id": "attended-costs", "metadata": {}, "source": [ "## Import Libraries" ] }, { "cell_type": "code", "execution_count": 1, "id": "da2d6d99", "metadata": {}, "outputs": [], "source": [ "import os\n", "import sys\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import refet\n", "\n", "sys.path.insert(0, os.path.abspath(\"../../src\")) # adjust path as needed\n", "from fluxfootprints import fetch_nldas_forcing_dataset" ] }, { "cell_type": "markdown", "id": "4a7d0f0a", "metadata": {}, "source": [ "## Parameters" ] }, { "cell_type": "markdown", "id": "e1a0bd44", "metadata": {}, "source": [ "Copy your token from Earthdata into the parameters below" ] }, { "cell_type": "code", "execution_count": 2, "id": "f4e53d2f", "metadata": {}, "outputs": [], "source": [ "import os\n", "token = os.environ.get('EARTHDATA_TOKEN')" ] }, { "cell_type": "code", "execution_count": 33, "id": "precious-profession", "metadata": {}, "outputs": [], "source": [ "# station parameters\n", "# note that the time start and end should be in UTC\n", "lat = 37.7353\t\t\n", "lon = -111.5708\n", "elevation_m = 1729.3\n", "time_start = '2021-06-01'\n", "time_end = '2026-10-01'\n", "utc_offset = -7\n", "STATIONID = 'US-UTE'" ] }, { "cell_type": "markdown", "id": "competitive-separation", "metadata": {}, "source": [ "## Download NLDAS Data and Format" ] }, { "cell_type": "code", "execution_count": 34, "id": "c6bcd954", "metadata": {}, "outputs": [], "source": [ "# format datetime and d\n", "time_start = pd.to_datetime(time_start)\n", "time_start = time_start.strftime(\"%Y-%m-%dT%H:%M:%S\")\n", "time_end = pd.to_datetime(time_end)\n", "time_end = time_end.strftime(\"%Y-%m-%dT%H:%M:%S\")" ] }, { "cell_type": "code", "execution_count": 35, "id": "63855484", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fetching temp_K...\n", "Status Code: 200\n", "Fetching spec_hum...\n", "Status Code: 200\n", "Fetching pressure_pa...\n", "Status Code: 200\n", "Fetching wind_u10...\n", "Status Code: 200\n", "Fetching wind_v10...\n", "Status Code: 200\n", "Fetching solar_rad...\n", "Status Code: 200\n" ] } ], "source": [ "# obtain nldas data for site and date range\n", "nldas_raw = fetch_nldas_forcing_dataset(lat, lon, time_start, time_end, token)\n", "nldas_raw['timestamp_local'] = nldas_raw.index + pd.Timedelta(hours=utc_offset)" ] }, { "cell_type": "code", "execution_count": 36, "id": "72cbf483", "metadata": {}, "outputs": [], "source": [ "# convert variables as needed and calculate hourly ref et\n", "df = nldas_raw.copy()\n", "\n", "# Compute 10m wind speed magnitude from NLDAS zonal/meridional vectors\n", "df[\"wind_10m\"] = np.sqrt(df[\"wind_u10\"] ** 2 + df[\"wind_v10\"] ** 2)\n", "\n", "# Compute actual vapor pressure (ea) in kPa from specific humidity (q) & surface pressure (P)\n", "p_kpa = df[\"pressure_pa\"] / 1000.0\n", "df[\"ea_kpa\"] = (df[\"spec_hum\"] * p_kpa) / (\n", " 0.622 + (1.0 - 0.622) * df[\"spec_hum\"]\n", ")\n", "\n", "# run hourly model\n", "refet_model = refet.Hourly(\n", " tmean=df[\"temp_K\"], # Temperature in Kelvin\n", " ea=df[\"ea_kpa\"], # Actual vapor pressure in kPa\n", " rs=df[\"solar_rad\"], # Solar radiation in W/m^2\n", " uz=df[\"wind_10m\"], # Wind speed in m/s at 10m\n", " zw=10, # Tell refet wind is measured at 10m\n", " elev=elevation_m, # Elevation in meters\n", " lat=lat, # Latitude in degrees\n", " lon=lon, # Longitude in degrees\n", " doy=df.index.dayofyear, # Day of year (1-366)\n", " time=df.index.hour, # UTC hour (0-23)\n", " method=\"asce\",\n", " input_units={\n", " \"tmean\": \"K\", # Kelvin -> refet converts to C internally\n", " \"rs\": \"w/m2\", # W/m2 -> refet converts to MJ/m2/hr internally\n", " \"lat\": \"deg\", # Degrees -> refet converts to rad internally\n", " \"uz\": \"m/s\",\n", " },\n", ")\n", "\n", "# xtract short grass (ETo) in mm/hr\n", "df[\"eto_grass\"] = refet_model.eto()\n", "\n", "# Compute each hour's fraction relative to the daily total\n", "daily_total_eto = df.groupby(df.timestamp_local.dt.date)[\"eto_grass\"].transform(\"sum\")\n", "df[\"eto_hourly_fraction\"] = df[\"eto_grass\"] / daily_total_eto\n", "#df[\"timestamp_local\"] = df.index#.to_series().dt.strftime(\"%Y-%m-%d %H:%M:%S\")\n", "df[\"timestamp_end\"] = df[\"timestamp_local\"] + pd.Timedelta(hours=1)\n", "\n", "NLDAS_ET_PATH= f\"M:/Shared drives/UGS_Flux/Data_Processing/final_processing_workflow/footprints/nldas/nldas_results/{STATIONID}_nldas.csv\"\n", "df.to_csv(NLDAS_ET_PATH + f\"{STATIONID}_nldas.csv\", index=True)" ] }, { "cell_type": "code", "execution_count": 22, "id": "7f0ac2c5", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ " # plot a single day- make sure time alignment is correct\n", "second_date = df[\"timestamp_local\"].dt.date.unique()[1]\n", "one_day = df[df[\"timestamp_local\"].dt.date == second_date]\n", "one_day.plot(x=\"timestamp_local\", y=\"eto_grass\", grid=True, marker=\"o\")\n", "plt.title(\"Hourly Reference ET (mm/hr)\")\n", "plt.ylabel(\"ETo [mm/hr]\")\n", "plt.xlabel(\"Local Time\")\n", "plt.xticks(rotation=45) # Rotates timestamps so they don't overlap\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 37, "id": "3c49c20e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
temp_Kspec_humpressure_pawind_u10wind_v10solar_radwind_10mea_kpaeto_grasstimestamp_localeto_hourly_fractiontimestamp_end
0295.180.00304381664.40.771.65677.9261.8208240.3987880.4668932024-06-18 16:00:000.4013192024-06-18 17:00:00
1295.430.00305081644.81.111.95475.8752.2437910.3996080.3415272024-06-18 17:00:000.2935602024-06-18 18:00:00
2294.060.00327581629.11.271.80297.6472.2029300.4289980.2106572024-06-18 18:00:000.1810712024-06-18 19:00:00
3292.690.00350181613.61.421.66126.5292.1844910.4584620.0711792024-06-18 19:00:000.0611822024-06-18 20:00:00
4291.320.00372881598.21.581.510.0002.1855210.4879980.0319422024-06-18 20:00:000.0274562024-06-18 21:00:00
\n", "
" ], "text/plain": [ " temp_K spec_hum pressure_pa wind_u10 wind_v10 solar_rad wind_10m \\\n", "0 295.18 0.003043 81664.4 0.77 1.65 677.926 1.820824 \n", "1 295.43 0.003050 81644.8 1.11 1.95 475.875 2.243791 \n", "2 294.06 0.003275 81629.1 1.27 1.80 297.647 2.202930 \n", "3 292.69 0.003501 81613.6 1.42 1.66 126.529 2.184491 \n", "4 291.32 0.003728 81598.2 1.58 1.51 0.000 2.185521 \n", "\n", " ea_kpa eto_grass timestamp_local eto_hourly_fraction \\\n", "0 0.398788 0.466893 2024-06-18 16:00:00 0.401319 \n", "1 0.399608 0.341527 2024-06-18 17:00:00 0.293560 \n", "2 0.428998 0.210657 2024-06-18 18:00:00 0.181071 \n", "3 0.458462 0.071179 2024-06-18 19:00:00 0.061182 \n", "4 0.487998 0.031942 2024-06-18 20:00:00 0.027456 \n", "\n", " timestamp_end \n", "0 2024-06-18 17:00:00 \n", "1 2024-06-18 18:00:00 \n", "2 2024-06-18 19:00:00 \n", "3 2024-06-18 20:00:00 \n", "4 2024-06-18 21:00:00 " ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "STATIONID = 'US-UTE'\n", "NLDAS_ET_PATH= f\"M:/Shared drives/UGS_Flux/Data_Processing/final_processing_workflow/footprints/nldas/nldas_results/{STATIONID}_nldas.csv\"\n", "pd.read_csv(NLDAS_ET_PATH).head()" ] } ], "metadata": { "kernelspec": { "display_name": "fluxfootprints (3.13.x)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.15" } }, "nbformat": 4, "nbformat_minor": 5 }