Forcing Questions

Why is NLDAS grid different from HydroTerre's grid

HydroTerre grid is based on the raster cell locations and align with the grib files when projected to Albers. NLDAS grid uses a different projection system. We now provide a shapefile (HT_NLDAS_GRID_IDs.shp) with both HydroTerre and NLDAS grid identifications for users downloading data from NLDAS website. Thank you for Lele Shu for addressing this issue.

Where is the forcing data coming from?

Our base data is derived from NLDAS http://ldas.gsfc.nasa.gov/nldas/NLDAS2forcing.php

I need more than 30 years worth of forcing, how can I get access to this data?

We simply don't have the computational resources at present. NLDAS from NASA also provide similar services to get data.

Known data issues?

Cells along the US coast, especially near islands have been included that are makred as no data. At present, these values are left as is, in the forcing files.

Why are there two forcing files?

forcing.xml data is derived from NLDAS at an hourly time interval. These are spatially distributed per NLDAS cell.

forcing_lookup.xml data are calculated using lookup tables at a monthly time interval and does not use NLDAS. However, these values are calculated using the unique land cover identifications as provided under <Forcing_Inputs> <Landcover_File>

For further details refer to:   A DISTRIBUTED HYDROLOGIC MODELING SYSTEM: FRAMEWORK FOR DISCOVERY AND MANAGEMENT OF WATER RESOURCES A Dissertation in Civil Engineering by Gopal Bhatt

Please describe the forcing.xml file data structure?

For visual example, scroll to bottom of page and look for forcing.xml file

Each <Forcing_Record> is one timestamp in a list of forcing records ( <Forcing_List>). In the example below, there are 8761 records (<Forcing_Count>8761</Forcing_Count>). Clearly, only one record of 8761 is shown below.

 Below,  "<HUC12_020503040301>" time stamp is <DateTime>2000-01-01T00:00:00-05:00</DateTime>. Thus, the year 2000, month January, day 1st at midnight 00:00 the forcing values at cell X for HUC12_020503040301 are

<Precip_cellX>       Precip is Precipitation            (m/day)

<Temp_cellX>        Temp is Temperature             (C) Celcius Degrees

 <RH_cellX>            RH is Relative Humidity        Fraction                                                     IE multiple by 100 to get (%) Percentage

<Wind_cellX>         Wind is Wind Speed              (m/day) at 10 meters above the surface   Cross product of NLDAS bands U and V wind component (m/s)

<RN_cellX>             RN is ShortWave Radiation  [J/(m^2  day)]    NLDAS provides data as W/(m^2) each NLDAS cell is multipled by 86400 (seconds/day)

<VP_cellX>              VP is Vapor Pressure             (Pa)

<LW_cellX>             LW is LongWave Radiation   [J/(m^2  day)]    NLDAS provides data as W/(m^2) each NLDAS cell is multipled by 86400 (seconds/day)

To understand why averaged(avg) and cell ids are assigned read question How do I get forcing data for my location?

Please describe the forcing_lookup.xml file data structure?

For visual example, scroll to bottom of page and look for forcing_lookup.xml file

Under <Forcing_Outputs> the following monthly records exist:

 <MF_List>               Melt Factor List            (m C-1h-1) rate of melt per degree per unit time

Each <MF_List> contains a <MF_Group> As there maybe multiple groups, each group is indexed. Under each group is a list of <MF_Records> that contain Date, Value, Start Day of month index, and end of the month index.

<RL_List>                 Roughness Length      (m)

Each <RL_List> contains a <RL_Group> As there maybe multiple groups, each group is indexed.  Each group is assigned the unique Landcover ID used to generate the Rougness Length records. Under each group is a list of <RL_Records> that contain Date, Value, Start Day of month index, and end of the month index.

<LAI_List>                Leaf Area Index            (m–2 m–2)

Each <LAI_List> contains a <LAI_Group> As there maybe multiple groups, each group is indexed.  Each group is assigned the unique Landcover ID used to generate the LAI records. Under each group is a list of <LAI_Records> that contain Date, Value, Start Day of month index, and end of the month index.

How do I get forcing data for my location?

  • If you need forcing variables for a point location:

Use your favourite GIS tool to identify which forcing cell your point is located. Then write a script/tool to parse the forcing.xml file. For example, your cell id is 047240 (see example file output below) then you parse each record (if you want hourly) and collect the Precip_047240, Temp_047240 and so on cells and parse them into your own data structures.  If your site happens to be on the cell edge(s) you will need to decide whether to average the cells or choose one to meet your data needs.

  • If you need forcing variables for an area:

As above, you will need to write a tool to parse the xml file to meet your data structure needs / file inputs. If you intend to average the forcing cell values for your area, these values are already available. I.E. Precip_Avg, Temp_Avg etc... Otherwise, depending on your domain and data needs each forcing variable ends with the cell id for you to parse.

Also see section I need help converting the forcing xml data!  for other techniques to parse forcing data....

forcing.xml file

 <Forcing_Outputs>
    <Forcing_Count_List>
      <Forcing_Count>8761</Forcing_Count>
    </Forcing_Count_List>
    <Forcing_List>
      <Forcing_Record>
        <Index_Start>0</Index_Start>
        <Index_End>0.0416666666666667</Index_End>
        <HUC12_020503040301>
          <DateTime>2000-01-01T00:00:00-05:00</DateTime>
          <Precip_047240>0</Precip_047240>
          <Precip_047241>0</Precip_047241>
          <Precip_047704>0</Precip_047704>
          <Precip_047705>0</Precip_047705>
          <Precip_Avg>0</Precip_Avg>
          <Temp_047240>-0.599999999999966</Temp_047240>
          <Temp_047241>-0.639999999999986</Temp_047241>
          <Temp_047704>-0.239999999999952</Temp_047704>
          <Temp_047705>-0.549999999999955</Temp_047705>
          <Temp_Avg>-0.50749999999996476</Temp_Avg>
          <RH_047240>0.833505788447814</RH_047240>
          <RH_047241>0.841402420626279</RH_047241>
          <RH_047704>0.822166930049007</RH_047704>
          <RH_047705>0.83136175378163</RH_047705>
          <RH_Avg>0.83210922322618242</RH_Avg>
          <Wind_047240>289955.362081821</Wind_047240>
          <Wind_047241>289955.362081821</Wind_047241>
          <Wind_047704>273331.421859983</Wind_047704>
          <Wind_047705>266729.828253235</Wind_047705>
          <Wind_Avg>279992.993569215</Wind_Avg>
          <RN_047240>0</RN_047240>
          <RN_047241>0</RN_047241>
          <RN_047704>0</RN_047704>
          <RN_047705>0</RN_047705>
          <RN_Avg>0</RN_Avg>
          <VP_047240>487.681249011346</VP_047240>
          <VP_047241>490.867339853915</VP_047241>
          <VP_047704>493.824016680331</VP_047704>
          <VP_047705>488.203303391075</VP_047705>
          <VP_Avg>490.14397723416675</VP_Avg>
          <LW_047240>18827424</LW_047240>
          <LW_047241>18886176</LW_047241>
          <LW_047704>18897408</LW_047704>
          <LW_047705>18860256</LW_047705>
          <LW_Avg>18867816</LW_Avg>
        </HUC12_020503040301>
      </Forcing_Record>

forcing_lookup.xml file

  <Forcing_List>
      <MF_List>
        <MF_Group>
          <MF_Index>1</MF_Index>
          <MF_Record>
               <Date>1/1/2000</Date>
               <Value>0.001308019</Value>
               <Index_Start>0</Index_Start>
               <Index_End>30</Index_End>
          </MF_Record>
        <MF_Group>
      <MF_List>
      <RL_List>
        <RL_Group>
          <LandcoverID>11</LandcoverID>
          <RL_Index>1</RL_Index>
          <RL_Record>
               <Date>1/1/2000</Date>
               <Value>0.07710524</Value>
               <Index_Start>0</Index_Start>
               <Index_End>30</Index_End>
          </RL_Record>
        <RL_Group>
      <RL_List>
      <LAI_List>
        <LAI_Group>
          <LandcoverID>11</LandcoverID>
          <LAI_Index>1</LAI_Index>
          <IsFactor>0.0002</IsFactor>
          <LAI_Record>
               <Date>1/1/2000</Date>
               <Value>0.5276088</Value>
               <Index_Start>0</Index_Start>
               <Index_End>30</Index_End>
          </LAI_Record>
        <LAI_Group>
      <LAI_List>