diff --git a/docs/source/data-structure/df_forcing.rst b/docs/source/data-structure/df_forcing.rst index b263058d..ac39d5b7 100644 --- a/docs/source/data-structure/df_forcing.rst +++ b/docs/source/data-structure/df_forcing.rst @@ -101,7 +101,7 @@ .. option:: pres :Description: - Barometric pressure [hPa] + Barometric pressure [kPa] .. option:: qe diff --git a/docs/source/data-structure/df_output.rst b/docs/source/data-structure/df_output.rst index b8f282a6..1cf3e6b8 100644 --- a/docs/source/data-structure/df_output.rst +++ b/docs/source/data-structure/df_output.rst @@ -93,7 +93,7 @@ :Description: Snow density - bare soil surface [kg |m^-3|] :Group: - snow + DailyState .. option:: DensSnow_BSoil @@ -107,7 +107,7 @@ .. option:: DensSnow_BSoil :Description: - Snow density - bare soil surface [kg |m^-3|] + Snow density – bare soil surface [kg |m^-3|] :Group: DailyState @@ -115,9 +115,9 @@ .. option:: DensSnow_BSoil :Description: - Snow density – bare soil surface [kg |m^-3|] + Snow density - bare soil surface [kg |m^-3|] :Group: - DailyState + snow .. option:: DensSnow_Bldgs @@ -157,7 +157,7 @@ :Description: Snow density - deciduous surface [kg |m^-3|] :Group: - DailyState + snow .. option:: DensSnow_DecTr @@ -171,7 +171,7 @@ .. option:: DensSnow_DecTr :Description: - Snow density – deciduous surface [kg |m^-3|] + Snow density - deciduous surface [kg |m^-3|] :Group: DailyState @@ -179,9 +179,9 @@ .. option:: DensSnow_DecTr :Description: - Snow density - deciduous surface [kg |m^-3|] + Snow density – deciduous surface [kg |m^-3|] :Group: - snow + DailyState .. option:: DensSnow_EveTr @@ -189,7 +189,7 @@ :Description: Snow density – evergreen surface [kg |m^-3|] :Group: - DailyState + snow .. option:: DensSnow_EveTr @@ -205,7 +205,7 @@ :Description: Snow density – evergreen surface [kg |m^-3|] :Group: - snow + DailyState .. option:: DensSnow_EveTr @@ -219,23 +219,23 @@ .. option:: DensSnow_Grass :Description: - Snow density – grass surface [kg |m^-3|] + Snow density - grass surface [kg |m^-3|] :Group: - DailyState + snow .. option:: DensSnow_Grass :Description: - Snow density – grass surface [kg |m^-3|] + Snow density - grass surface [kg |m^-3|] :Group: - snow + DailyState .. option:: DensSnow_Grass :Description: - Snow density - grass surface [kg |m^-3|] + Snow density – grass surface [kg |m^-3|] :Group: snow @@ -243,7 +243,7 @@ .. option:: DensSnow_Grass :Description: - Snow density - grass surface [kg |m^-3|] + Snow density – grass surface [kg |m^-3|] :Group: DailyState @@ -261,7 +261,7 @@ :Description: Snow density - paved surface [kg |m^-3|] :Group: - DailyState + snow .. option:: DensSnow_Paved @@ -277,13 +277,13 @@ :Description: Snow density - paved surface [kg |m^-3|] :Group: - snow + DailyState .. option:: DensSnow_Water :Description: - Snow density – water surface [kg |m^-3|] + Snow density - water surface [kg |m^-3|] :Group: snow @@ -291,7 +291,7 @@ .. option:: DensSnow_Water :Description: - Snow density - water surface [kg |m^-3|] + Snow density – water surface [kg |m^-3|] :Group: snow @@ -331,7 +331,7 @@ .. option:: Fc :Description: - CO2 flux [umol |m^-2| |s^-1|] |NotAvail| + CO2 flux [umol |m^-2| |s^-1|] :Group: SUEWS @@ -339,7 +339,7 @@ .. option:: FcBuild :Description: - CO2 flux from buildings [umol |m^-2| |s^-1|] |NotAvail| + CO2 flux from buildings [umol |m^-2| |s^-1|] :Group: SUEWS @@ -347,7 +347,7 @@ .. option:: FcMetab :Description: - CO2 flux from metabolism [umol |m^-2| |s^-1|] |NotAvail| + CO2 flux from metabolism [umol |m^-2| |s^-1|] :Group: SUEWS @@ -355,7 +355,15 @@ .. option:: FcPhoto :Description: - CO2 flux from photosynthesis [umol |m^-2| |s^-1|] |NotAvail| + CO2 flux from photosynthesis [umol |m^-2| |s^-1|] + :Group: + SUEWS + + +.. option:: FcPoint + + :Description: + CO2 flux from point source [umol |m^-2| |s^-1|] :Group: SUEWS @@ -363,7 +371,7 @@ .. option:: FcRespi :Description: - CO2 flux from respiration [umol |m^-2| |s^-1|] |NotAvail| + CO2 flux from respiration [umol |m^-2| |s^-1|] :Group: SUEWS @@ -371,7 +379,7 @@ .. option:: FcTraff :Description: - CO2 flux from traffic [umol |m^-2| |s^-1|] |NotAvail| + CO2 flux from traffic [umol |m^-2| |s^-1|] :Group: SUEWS @@ -1400,396 +1408,1356 @@ SUEWS -.. option:: TotCh +.. option:: T_1 :Description: - Change in surface and soil moisture stores [mm] + Air temperature at level 1 [°C] :Group: - SUEWS + RSL -.. option:: Ts +.. option:: T_10 :Description: - Skin temperature [°C] + Air temperature at level 10 [°C] :Group: - SUEWS + RSL -.. option:: Tsnow_BSoil +.. option:: T_11 :Description: - Snow surface temperature – bare soil surface [°C] + Air temperature at level 11 [°C] :Group: - snow + RSL -.. option:: Tsnow_Bldgs +.. option:: T_12 :Description: - Snow surface temperature – building surface [°C] + Air temperature at level 12 [°C] :Group: - snow + RSL -.. option:: Tsnow_DecTr +.. option:: T_13 :Description: - Snow surface temperature – deciduous surface [°C] + Air temperature at level 13 [°C] :Group: - snow + RSL -.. option:: Tsnow_EveTr +.. option:: T_14 :Description: - Snow surface temperature – evergreen surface [°C] + Air temperature at level 14 [°C] :Group: - snow + RSL -.. option:: Tsnow_Grass +.. option:: T_15 :Description: - Snow surface temperature – grass surface [°C] + Air temperature at level 15 [°C] :Group: - snow + RSL -.. option:: Tsnow_Paved +.. option:: T_16 :Description: - Snow surface temperature – paved surface [°C] + Air temperature at level 16 [°C] :Group: - snow + RSL -.. option:: Tsnow_Water +.. option:: T_17 :Description: - Snow surface temperature – water surface [°C] + Air temperature at level 17 [°C] :Group: - snow + RSL -.. option:: Tsurf +.. option:: T_18 :Description: - Bulk surface temperature [°C] + Air temperature at level 18 [°C] :Group: - SUEWS + RSL -.. option:: U10 +.. option:: T_19 :Description: - Wind speed at 10 m agl [m |s^-1|] + Air temperature at level 19 [°C] :Group: - SUEWS + RSL -.. option:: WUDecTr +.. option:: T_2 :Description: - Water use for irrigation of deciduous trees [mm] + Air temperature at level 2 [°C] :Group: - SUEWS + RSL -.. option:: WUEveTr +.. option:: T_20 :Description: - Water use for irrigation of evergreen trees [mm] + Air temperature at level 20 [°C] :Group: - SUEWS + RSL -.. option:: WUGrass +.. option:: T_21 :Description: - Water use for irrigation of grass [mm] + Air temperature at level 21 [°C] :Group: - SUEWS + RSL -.. option:: WUInt +.. option:: T_22 :Description: - Internal water use [mm] + Air temperature at level 22 [°C] :Group: - SUEWS + RSL -.. option:: WU_DecTr1 +.. option:: T_23 :Description: - Total water use for deciduous trees [mm] + Air temperature at level 23 [°C] :Group: - DailyState + RSL -.. option:: WU_DecTr2 +.. option:: T_24 :Description: - Automatic water use for deciduous trees [mm] + Air temperature at level 24 [°C] :Group: - DailyState + RSL -.. option:: WU_DecTr3 +.. option:: T_25 :Description: - Manual water use for deciduous trees [mm] + Air temperature at level 25 [°C] :Group: - DailyState + RSL -.. option:: WU_EveTr1 +.. option:: T_26 :Description: - Total water use for evergreen trees [mm] + Air temperature at level 26 [°C] :Group: - DailyState + RSL -.. option:: WU_EveTr2 +.. option:: T_27 :Description: - Automatic water use for evergreen trees [mm] + Air temperature at level 27 [°C] :Group: - DailyState + RSL -.. option:: WU_EveTr3 +.. option:: T_28 :Description: - Manual water use for evergreen trees [mm] + Air temperature at level 28 [°C] :Group: - DailyState + RSL -.. option:: WU_Grass1 +.. option:: T_29 :Description: - Total water use for grass [mm] + Air temperature at level 29 [°C] :Group: - DailyState + RSL -.. option:: WU_Grass2 +.. option:: T_3 :Description: - Automatic water use for grass [mm] + Air temperature at level 3 [°C] :Group: - DailyState + RSL -.. option:: WU_Grass3 +.. option:: T_30 :Description: - Manual water use for grass [mm] + Air temperature at level 30 [°C] :Group: - DailyState + RSL -.. option:: Zenith +.. option:: T_4 :Description: - Solar zenith angle [°] + Air temperature at level 4 [°C] :Group: - SUEWS + RSL -.. option:: a1 +.. option:: T_5 :Description: - OHM cofficient a1 - [-] + Air temperature at level 5 [°C] :Group: - DailyState + RSL -.. option:: a2 +.. option:: T_6 :Description: - OHM cofficient a2 [W |m^-2| |h^-1|] + Air temperature at level 6 [°C] :Group: - DailyState + RSL -.. option:: a3 +.. option:: T_7 :Description: - OHM cofficient a3 - [W |m^-2|] + Air temperature at level 7 [°C] :Group: - DailyState + RSL -.. option:: deltaLAI +.. option:: T_8 :Description: - Change in leaf area index (normalised 0-1) [-] + Air temperature at level 8 [°C] :Group: - DailyState + RSL -.. option:: frMelt_BSoil +.. option:: T_9 :Description: - Amount of freezing melt water – bare soil surface [mm] + Air temperature at level 9 [°C] :Group: - snow + RSL -.. option:: frMelt_Bldgs +.. option:: TotCh :Description: - Amount of freezing melt water – building surface [mm] + Change in surface and soil moisture stores [mm] :Group: - snow + SUEWS -.. option:: frMelt_DecTr +.. option:: Ts :Description: - Amount of freezing melt water – deciduous surface [mm] + Skin temperature [°C] :Group: - snow + SUEWS -.. option:: frMelt_EveTr +.. option:: Tsnow_BSoil :Description: - Amount of freezing melt water – evergreen surface [mm] + Snow surface temperature – bare soil surface [°C] :Group: snow -.. option:: frMelt_Grass +.. option:: Tsnow_Bldgs :Description: - Amount of freezing melt water – grass surface [mm] + Snow surface temperature – building surface [°C] :Group: snow -.. option:: frMelt_Paved +.. option:: Tsnow_DecTr :Description: - Amount of freezing melt water – paved surface [mm] + Snow surface temperature – deciduous surface [°C] :Group: snow -.. option:: frMelt_Water +.. option:: Tsnow_EveTr :Description: - Amount of freezing melt water – water surface [mm] + Snow surface temperature – evergreen surface [°C] :Group: snow -.. option:: fr_Bldgs +.. option:: Tsnow_Grass :Description: - Fraction of snow – building surface [-] + Snow surface temperature – grass surface [°C] :Group: snow -.. option:: fr_DecTr +.. option:: Tsnow_Paved :Description: - Fraction of snow – deciduous surface [-] + Snow surface temperature – paved surface [°C] :Group: snow -.. option:: fr_EveTr +.. option:: Tsnow_Water :Description: - Fraction of snow – evergreen surface [-] + Snow surface temperature – water surface [°C] :Group: snow -.. option:: fr_Grass +.. option:: Tsurf :Description: - Fraction of snow – grass surface [-] + Bulk surface temperature [°C] :Group: - snow + SUEWS -.. option:: fr_Paved +.. option:: U10 :Description: - Fraction of snow – paved surface [-] + Wind speed at 10 m agl [m |s^-1|] :Group: - snow + SUEWS -.. option:: kup_BSoilSnow +.. option:: U_1 :Description: - Reflected shortwave radiation – bare soil surface [W |m^-2|] + Wind speed at level 1 [m |s^-1|] :Group: - snow + RSL -.. option:: kup_BldgsSnow +.. option:: U_10 :Description: - Reflected shortwave radiation – building surface [W |m^-2|] + Wind speed at level 10 [m |s^-1|] :Group: - snow + RSL -.. option:: kup_DecTrSnow +.. option:: U_11 :Description: - Reflected shortwave radiation – deciduous surface [W |m^-2|] + Wind speed at level 11 [m |s^-1|] :Group: - snow + RSL -.. option:: kup_EveTrSnow +.. option:: U_12 :Description: - Reflected shortwave radiation – evergreen surface [W |m^-2|] + Wind speed at level 12 [m |s^-1|] :Group: - snow + RSL -.. option:: kup_GrassSnow +.. option:: U_13 :Description: - Reflected shortwave radiation – grass surface [W |m^-2|] + Wind speed at level 13 [m |s^-1|] :Group: - snow + RSL -.. option:: kup_PavedSnow +.. option:: U_14 :Description: - Reflected shortwave radiation – paved surface [W |m^-2|] + Wind speed at level 14 [m |s^-1|] :Group: - snow + RSL -.. option:: kup_WaterSnow +.. option:: U_15 :Description: - Reflected shortwave radiation – water surface [W |m^-2|] + Wind speed at level 15 [m |s^-1|] :Group: - snow + RSL -.. option:: z0m +.. option:: U_16 :Description: - Roughness length for momentum [m] + Wind speed at level 16 [m |s^-1|] :Group: - SUEWS + RSL + + +.. option:: U_17 + + :Description: + Wind speed at level 17 [m |s^-1|] + :Group: + RSL + + +.. option:: U_18 + + :Description: + Wind speed at level 18 [m |s^-1|] + :Group: + RSL + + +.. option:: U_19 + + :Description: + Wind speed at level 19 [m |s^-1|] + :Group: + RSL + + +.. option:: U_2 + + :Description: + Wind speed at level 2 [m |s^-1|] + :Group: + RSL + + +.. option:: U_20 + + :Description: + Wind speed at level 20 [m |s^-1|] + :Group: + RSL + + +.. option:: U_21 + + :Description: + Wind speed at level 21 [m |s^-1|] + :Group: + RSL + + +.. option:: U_22 + + :Description: + Wind speed at level 22 [m |s^-1|] + :Group: + RSL + + +.. option:: U_23 + + :Description: + Wind speed at level 23 [m |s^-1|] + :Group: + RSL + + +.. option:: U_24 + + :Description: + Wind speed at level 24 [m |s^-1|] + :Group: + RSL + + +.. option:: U_25 + + :Description: + Wind speed at level 25 [m |s^-1|] + :Group: + RSL + + +.. option:: U_26 + + :Description: + Wind speed at level 26 [m |s^-1|] + :Group: + RSL + + +.. option:: U_27 + + :Description: + Wind speed at level 27 [m |s^-1|] + :Group: + RSL + + +.. option:: U_28 + + :Description: + Wind speed at level 28 [m |s^-1|] + :Group: + RSL + + +.. option:: U_29 + + :Description: + Wind speed at level 29 [m |s^-1|] + :Group: + RSL + + +.. option:: U_3 + + :Description: + Wind speed at level 3 [m |s^-1|] + :Group: + RSL + + +.. option:: U_30 + + :Description: + Wind speed at level 30 [m |s^-1|] + :Group: + RSL + + +.. option:: U_4 + + :Description: + Wind speed at level 4 [m |s^-1|] + :Group: + RSL + + +.. option:: U_5 + + :Description: + Wind speed at level 5 [m |s^-1|] + :Group: + RSL + + +.. option:: U_6 + + :Description: + Wind speed at level 6 [m |s^-1|] + :Group: + RSL + + +.. option:: U_7 + + :Description: + Wind speed at level 7 [m |s^-1|] + :Group: + RSL + + +.. option:: U_8 + + :Description: + Wind speed at level 8 [m |s^-1|] + :Group: + RSL + + +.. option:: U_9 + + :Description: + Wind speed at level 9 [m |s^-1|] + :Group: + RSL + + +.. option:: WUDecTr + + :Description: + Water use for irrigation of deciduous trees [mm] + :Group: + SUEWS + + +.. option:: WUEveTr + + :Description: + Water use for irrigation of evergreen trees [mm] + :Group: + SUEWS + + +.. option:: WUGrass + + :Description: + Water use for irrigation of grass [mm] + :Group: + SUEWS + + +.. option:: WUInt + + :Description: + Internal water use [mm] + :Group: + SUEWS + + +.. option:: WU_DecTr1 + + :Description: + Total water use for deciduous trees [mm] + :Group: + DailyState + + +.. option:: WU_DecTr2 + + :Description: + Automatic water use for deciduous trees [mm] + :Group: + DailyState + + +.. option:: WU_DecTr3 + + :Description: + Manual water use for deciduous trees [mm] + :Group: + DailyState + + +.. option:: WU_EveTr1 + + :Description: + Total water use for evergreen trees [mm] + :Group: + DailyState + + +.. option:: WU_EveTr2 + + :Description: + Automatic water use for evergreen trees [mm] + :Group: + DailyState + + +.. option:: WU_EveTr3 + + :Description: + Manual water use for evergreen trees [mm] + :Group: + DailyState + + +.. option:: WU_Grass1 + + :Description: + Total water use for grass [mm] + :Group: + DailyState + + +.. option:: WU_Grass2 + + :Description: + Automatic water use for grass [mm] + :Group: + DailyState + + +.. option:: WU_Grass3 + + :Description: + Manual water use for grass [mm] + :Group: + DailyState + + +.. option:: Zenith + + :Description: + Solar zenith angle [°] + :Group: + SUEWS + + +.. option:: a1 + + :Description: + OHM cofficient a1 - [-] + :Group: + DailyState + + +.. option:: a2 + + :Description: + OHM cofficient a2 [W |m^-2| |h^-1|] + :Group: + DailyState + + +.. option:: a3 + + :Description: + OHM cofficient a3 - [W |m^-2|] + :Group: + DailyState + + +.. option:: deltaLAI + + :Description: + Change in leaf area index (normalised 0-1) [-] + :Group: + DailyState + + +.. option:: frMelt_BSoil + + :Description: + Amount of freezing melt water – bare soil surface [mm] + :Group: + snow + + +.. option:: frMelt_Bldgs + + :Description: + Amount of freezing melt water – building surface [mm] + :Group: + snow + + +.. option:: frMelt_DecTr + + :Description: + Amount of freezing melt water – deciduous surface [mm] + :Group: + snow + + +.. option:: frMelt_EveTr + + :Description: + Amount of freezing melt water – evergreen surface [mm] + :Group: + snow + + +.. option:: frMelt_Grass + + :Description: + Amount of freezing melt water – grass surface [mm] + :Group: + snow + + +.. option:: frMelt_Paved + + :Description: + Amount of freezing melt water – paved surface [mm] + :Group: + snow + + +.. option:: frMelt_Water + + :Description: + Amount of freezing melt water – water surface [mm] + :Group: + snow + + +.. option:: fr_Bldgs + + :Description: + Fraction of snow – building surface [-] + :Group: + snow + + +.. option:: fr_DecTr + + :Description: + Fraction of snow – deciduous surface [-] + :Group: + snow + + +.. option:: fr_EveTr + + :Description: + Fraction of snow – evergreen surface [-] + :Group: + snow + + +.. option:: fr_Grass + + :Description: + Fraction of snow – grass surface [-] + :Group: + snow + + +.. option:: fr_Paved + + :Description: + Fraction of snow – paved surface [-] + :Group: + snow + + +.. option:: kup_BSoilSnow + + :Description: + Reflected shortwave radiation – bare soil surface [W |m^-2|] + :Group: + snow + + +.. option:: kup_BldgsSnow + + :Description: + Reflected shortwave radiation – building surface [W |m^-2|] + :Group: + snow + + +.. option:: kup_DecTrSnow + + :Description: + Reflected shortwave radiation – deciduous surface [W |m^-2|] + :Group: + snow + + +.. option:: kup_EveTrSnow + + :Description: + Reflected shortwave radiation – evergreen surface [W |m^-2|] + :Group: + snow + + +.. option:: kup_GrassSnow + + :Description: + Reflected shortwave radiation – grass surface [W |m^-2|] + :Group: + snow + + +.. option:: kup_PavedSnow + + :Description: + Reflected shortwave radiation – paved surface [W |m^-2|] + :Group: + snow + + +.. option:: kup_WaterSnow + + :Description: + Reflected shortwave radiation – water surface [W |m^-2|] + :Group: + snow + + +.. option:: q_1 + + :Description: + Specific humidity at level 1 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_10 + + :Description: + Specific humidity at level 10 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_11 + + :Description: + Specific humidity at level 11 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_12 + + :Description: + Specific humidity at level 12 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_13 + + :Description: + Specific humidity at level 13 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_14 + + :Description: + Specific humidity at level 14 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_15 + + :Description: + Specific humidity at level 15 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_16 + + :Description: + Specific humidity at level 16 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_17 + + :Description: + Specific humidity at level 17 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_18 + + :Description: + Specific humidity at level 18 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_19 + + :Description: + Specific humidity at level 19 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_2 + + :Description: + Specific humidity at level 2 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_20 + + :Description: + Specific humidity at level 20 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_21 + + :Description: + Specific humidity at level 21 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_22 + + :Description: + Specific humidity at level 22 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_23 + + :Description: + Specific humidity at level 23 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_24 + + :Description: + Specific humidity at level 24 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_25 + + :Description: + Specific humidity at level 25 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_26 + + :Description: + Specific humidity at level 26 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_27 + + :Description: + Specific humidity at level 27 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_28 + + :Description: + Specific humidity at level 28 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_29 + + :Description: + Specific humidity at level 29 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_3 + + :Description: + Specific humidity at level 3 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_30 + + :Description: + Specific humidity at level 30 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_4 + + :Description: + Specific humidity at level 4 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_5 + + :Description: + Specific humidity at level 5 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_6 + + :Description: + Specific humidity at level 6 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_7 + + :Description: + Specific humidity at level 7 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_8 + + :Description: + Specific humidity at level 8 [g |kg^-1|] + :Group: + RSL + + +.. option:: q_9 + + :Description: + Specific humidity at level 9 [g |kg^-1|] + :Group: + RSL + + +.. option:: z0m + + :Description: + Roughness length for momentum [m] + :Group: + SUEWS + + +.. option:: z_1 + + :Description: + Height at level 1 [m] + :Group: + RSL + + +.. option:: z_10 + + :Description: + Height at level 10 [m] + :Group: + RSL + + +.. option:: z_11 + + :Description: + Height at level 11 [m] + :Group: + RSL + + +.. option:: z_12 + + :Description: + Height at level 12 [m] + :Group: + RSL + + +.. option:: z_13 + + :Description: + Height at level 13 [m] + :Group: + RSL + + +.. option:: z_14 + + :Description: + Height at level 14 [m] + :Group: + RSL + + +.. option:: z_15 + + :Description: + Height at level 15 [m] + :Group: + RSL + + +.. option:: z_16 + + :Description: + Height at level 16 [m] + :Group: + RSL + + +.. option:: z_17 + + :Description: + Height at level 17 [m] + :Group: + RSL + + +.. option:: z_18 + + :Description: + Height at level 18 [m] + :Group: + RSL + + +.. option:: z_19 + + :Description: + Height at level 19 [m] + :Group: + RSL + + +.. option:: z_2 + + :Description: + Height at level 2 [m] + :Group: + RSL + + +.. option:: z_20 + + :Description: + Height at level 20 [m] + :Group: + RSL + + +.. option:: z_21 + + :Description: + Height at level 21 [m] + :Group: + RSL + + +.. option:: z_22 + + :Description: + Height at level 22 [m] + :Group: + RSL + + +.. option:: z_23 + + :Description: + Height at level 23 [m] + :Group: + RSL + + +.. option:: z_24 + + :Description: + Height at level 24 [m] + :Group: + RSL + + +.. option:: z_25 + + :Description: + Height at level 25 [m] + :Group: + RSL + + +.. option:: z_26 + + :Description: + Height at level 26 [m] + :Group: + RSL + + +.. option:: z_27 + + :Description: + Height at level 27 [m] + :Group: + RSL + + +.. option:: z_28 + + :Description: + Height at level 28 [m] + :Group: + RSL + + +.. option:: z_29 + + :Description: + Height at level 29 [m] + :Group: + RSL + + +.. option:: z_3 + + :Description: + Height at level 3 [m] + :Group: + RSL + + +.. option:: z_30 + + :Description: + Height at level 30 [m] + :Group: + RSL + + +.. option:: z_4 + + :Description: + Height at level 4 [m] + :Group: + RSL + + +.. option:: z_5 + + :Description: + Height at level 5 [m] + :Group: + RSL + + +.. option:: z_6 + + :Description: + Height at level 6 [m] + :Group: + RSL + + +.. option:: z_7 + + :Description: + Height at level 7 [m] + :Group: + RSL + + +.. option:: z_8 + + :Description: + Height at level 8 [m] + :Group: + RSL + + +.. option:: z_9 + + :Description: + Height at level 9 [m] + :Group: + RSL .. option:: zdm diff --git a/docs/source/data-structure/df_state.rst b/docs/source/data-structure/df_state.rst index a1ee26c0..4bd72487 100644 --- a/docs/source/data-structure/df_state.rst +++ b/docs/source/data-structure/df_state.rst @@ -217,7 +217,7 @@ .. option:: alt :Description: - Used for both the radiation and water flow between grids. + Altitude of grids [m]. :Dimensionality: 0 :Dimensionality Remarks: @@ -334,6 +334,18 @@ :option:`AnOHM_Ch ` +.. option:: co2pointsource + + :Description: + CO2 emission factor [kg |km^-1|] + :Dimensionality: + 0 + :Dimensionality Remarks: + Scalar + :SUEWS-related variables: + :option:`CO2PointSource ` + + .. option:: cpanohm :Description: @@ -601,13 +613,13 @@ .. option:: fcef_v_kgkm :Description: - CO2 emission factor [kg |km^-1|] + CO2 emission factor for weekdays [kg |km^-1|];;CO2 emission factor for weekends [kg |km^-1|] :Dimensionality: - 0 + (2,) :Dimensionality Remarks: - Scalar + 2: {Weekday, Weekend} :SUEWS-related variables: - :option:`FcEF_v_kgkm ` + :option:`FcEF_v_kgkmWD `, :option:`FcEF_v_kgkmWE ` .. option:: flowchange @@ -986,6 +998,18 @@ :option:`MaxConductance ` +.. option:: maxfcmetab + + :Description: + Maximum (day) CO2 from human metabolism. [W |m^-2|] + :Dimensionality: + 0 + :Dimensionality Remarks: + Scalar + :SUEWS-related variables: + :option:`MaxFCMetab ` + + .. option:: maxqfmetab :Description: @@ -1010,6 +1034,18 @@ :option:`min_respi ` +.. option:: minfcmetab + + :Description: + Minimum (night) CO2 from human metabolism. [W |m^-2|] + :Dimensionality: + 0 + :Dimensionality Remarks: + Scalar + :SUEWS-related variables: + :option:`MinFCMetab ` + + .. option:: minqfmetab :Description: @@ -1127,9 +1163,9 @@ :Description: Daytime population density (i.e. workers, tourists) [people |ha^-1|] :Dimensionality: - 0 + (2,) :Dimensionality Remarks: - Scalar + 2: {Weekday, Weekend} :SUEWS-related variables: :option:`PopDensDay ` @@ -1199,7 +1235,7 @@ .. option:: preciplimit :Description: - Limit for hourly snowfall when the ground is fully covered with snow [mm] + Temperature limit when precipitation falls as snow [°C] :Dimensionality: 0 :Dimensionality Remarks: @@ -1211,7 +1247,7 @@ .. option:: preciplimitalb :Description: - Limit for hourly precipitation when the ground is fully covered with snow. Then snow albedo is reset to AlbedoMax [mm] + Limit for hourly precipitation when the ground is fully covered with snow [mm] :Dimensionality: 0 :Dimensionality Remarks: diff --git a/docs/source/proc_var_info/df_output.csv b/docs/source/proc_var_info/df_output.csv index c995356a..7bdb9b1c 100644 --- a/docs/source/proc_var_info/df_output.csv +++ b/docs/source/proc_var_info/df_output.csv @@ -56,12 +56,13 @@ zdm,SUEWS,Zero-plane displacement height [m] Lob,SUEWS,Obukhov length [m] RA,SUEWS,Aerodynamic resistance [s |m^-1|] RS,SUEWS,Surface resistance [s |m^-1|] -Fc,SUEWS,CO2 flux [umol |m^-2| |s^-1|] |NotAvail| -FcPhoto,SUEWS,CO2 flux from photosynthesis [umol |m^-2| |s^-1|] |NotAvail| -FcRespi,SUEWS,CO2 flux from respiration [umol |m^-2| |s^-1|] |NotAvail| -FcMetab,SUEWS,CO2 flux from metabolism [umol |m^-2| |s^-1|] |NotAvail| -FcTraff,SUEWS,CO2 flux from traffic [umol |m^-2| |s^-1|] |NotAvail| -FcBuild,SUEWS,CO2 flux from buildings [umol |m^-2| |s^-1|] |NotAvail| +Fc,SUEWS,CO2 flux [umol |m^-2| |s^-1|] +FcPhoto,SUEWS,CO2 flux from photosynthesis [umol |m^-2| |s^-1|] +FcRespi,SUEWS,CO2 flux from respiration [umol |m^-2| |s^-1|] +FcMetab,SUEWS,CO2 flux from metabolism [umol |m^-2| |s^-1|] +FcTraff,SUEWS,CO2 flux from traffic [umol |m^-2| |s^-1|] +FcBuild,SUEWS,CO2 flux from buildings [umol |m^-2| |s^-1|] +FcPoint,SUEWS,CO2 flux from point source [umol |m^-2| |s^-1|] QNSnowFr,SUEWS,Net all-wave radiation for snow-free area [W |m^-2|] QNSnow,SUEWS,Net all-wave radiation for snow area [W |m^-2|] AlbSnow,SUEWS,Snow albedo [-] @@ -190,6 +191,126 @@ Tsnow_DecTr,snow,Snow surface temperature – deciduous surface [°C] Tsnow_Grass,snow,Snow surface temperature – grass surface [°C] Tsnow_BSoil,snow,Snow surface temperature – bare soil surface [°C] Tsnow_Water,snow,Snow surface temperature – water surface [°C] +z_1,RSL,Height at level 1 [m] +z_2,RSL,Height at level 2 [m] +z_3,RSL,Height at level 3 [m] +z_4,RSL,Height at level 4 [m] +z_5,RSL,Height at level 5 [m] +z_6,RSL,Height at level 6 [m] +z_7,RSL,Height at level 7 [m] +z_8,RSL,Height at level 8 [m] +z_9,RSL,Height at level 9 [m] +z_10,RSL,Height at level 10 [m] +z_11,RSL,Height at level 11 [m] +z_12,RSL,Height at level 12 [m] +z_13,RSL,Height at level 13 [m] +z_14,RSL,Height at level 14 [m] +z_15,RSL,Height at level 15 [m] +z_16,RSL,Height at level 16 [m] +z_17,RSL,Height at level 17 [m] +z_18,RSL,Height at level 18 [m] +z_19,RSL,Height at level 19 [m] +z_20,RSL,Height at level 20 [m] +z_21,RSL,Height at level 21 [m] +z_22,RSL,Height at level 22 [m] +z_23,RSL,Height at level 23 [m] +z_24,RSL,Height at level 24 [m] +z_25,RSL,Height at level 25 [m] +z_26,RSL,Height at level 26 [m] +z_27,RSL,Height at level 27 [m] +z_28,RSL,Height at level 28 [m] +z_29,RSL,Height at level 29 [m] +z_30,RSL,Height at level 30 [m] +U_1,RSL,Wind speed at level 1 [m |s^-1|] +U_2,RSL,Wind speed at level 2 [m |s^-1|] +U_3,RSL,Wind speed at level 3 [m |s^-1|] +U_4,RSL,Wind speed at level 4 [m |s^-1|] +U_5,RSL,Wind speed at level 5 [m |s^-1|] +U_6,RSL,Wind speed at level 6 [m |s^-1|] +U_7,RSL,Wind speed at level 7 [m |s^-1|] +U_8,RSL,Wind speed at level 8 [m |s^-1|] +U_9,RSL,Wind speed at level 9 [m |s^-1|] +U_10,RSL,Wind speed at level 10 [m |s^-1|] +U_11,RSL,Wind speed at level 11 [m |s^-1|] +U_12,RSL,Wind speed at level 12 [m |s^-1|] +U_13,RSL,Wind speed at level 13 [m |s^-1|] +U_14,RSL,Wind speed at level 14 [m |s^-1|] +U_15,RSL,Wind speed at level 15 [m |s^-1|] +U_16,RSL,Wind speed at level 16 [m |s^-1|] +U_17,RSL,Wind speed at level 17 [m |s^-1|] +U_18,RSL,Wind speed at level 18 [m |s^-1|] +U_19,RSL,Wind speed at level 19 [m |s^-1|] +U_20,RSL,Wind speed at level 20 [m |s^-1|] +U_21,RSL,Wind speed at level 21 [m |s^-1|] +U_22,RSL,Wind speed at level 22 [m |s^-1|] +U_23,RSL,Wind speed at level 23 [m |s^-1|] +U_24,RSL,Wind speed at level 24 [m |s^-1|] +U_25,RSL,Wind speed at level 25 [m |s^-1|] +U_26,RSL,Wind speed at level 26 [m |s^-1|] +U_27,RSL,Wind speed at level 27 [m |s^-1|] +U_28,RSL,Wind speed at level 28 [m |s^-1|] +U_29,RSL,Wind speed at level 29 [m |s^-1|] +U_30,RSL,Wind speed at level 30 [m |s^-1|] +T_1,RSL,Air temperature at level 1 [°C] +T_2,RSL,Air temperature at level 2 [°C] +T_3,RSL,Air temperature at level 3 [°C] +T_4,RSL,Air temperature at level 4 [°C] +T_5,RSL,Air temperature at level 5 [°C] +T_6,RSL,Air temperature at level 6 [°C] +T_7,RSL,Air temperature at level 7 [°C] +T_8,RSL,Air temperature at level 8 [°C] +T_9,RSL,Air temperature at level 9 [°C] +T_10,RSL,Air temperature at level 10 [°C] +T_11,RSL,Air temperature at level 11 [°C] +T_12,RSL,Air temperature at level 12 [°C] +T_13,RSL,Air temperature at level 13 [°C] +T_14,RSL,Air temperature at level 14 [°C] +T_15,RSL,Air temperature at level 15 [°C] +T_16,RSL,Air temperature at level 16 [°C] +T_17,RSL,Air temperature at level 17 [°C] +T_18,RSL,Air temperature at level 18 [°C] +T_19,RSL,Air temperature at level 19 [°C] +T_20,RSL,Air temperature at level 20 [°C] +T_21,RSL,Air temperature at level 21 [°C] +T_22,RSL,Air temperature at level 22 [°C] +T_23,RSL,Air temperature at level 23 [°C] +T_24,RSL,Air temperature at level 24 [°C] +T_25,RSL,Air temperature at level 25 [°C] +T_26,RSL,Air temperature at level 26 [°C] +T_27,RSL,Air temperature at level 27 [°C] +T_28,RSL,Air temperature at level 28 [°C] +T_29,RSL,Air temperature at level 29 [°C] +T_30,RSL,Air temperature at level 30 [°C] +q_1,RSL,Specific humidity at level 1 [g |kg^-1|] +q_2,RSL,Specific humidity at level 2 [g |kg^-1|] +q_3,RSL,Specific humidity at level 3 [g |kg^-1|] +q_4,RSL,Specific humidity at level 4 [g |kg^-1|] +q_5,RSL,Specific humidity at level 5 [g |kg^-1|] +q_6,RSL,Specific humidity at level 6 [g |kg^-1|] +q_7,RSL,Specific humidity at level 7 [g |kg^-1|] +q_8,RSL,Specific humidity at level 8 [g |kg^-1|] +q_9,RSL,Specific humidity at level 9 [g |kg^-1|] +q_10,RSL,Specific humidity at level 10 [g |kg^-1|] +q_11,RSL,Specific humidity at level 11 [g |kg^-1|] +q_12,RSL,Specific humidity at level 12 [g |kg^-1|] +q_13,RSL,Specific humidity at level 13 [g |kg^-1|] +q_14,RSL,Specific humidity at level 14 [g |kg^-1|] +q_15,RSL,Specific humidity at level 15 [g |kg^-1|] +q_16,RSL,Specific humidity at level 16 [g |kg^-1|] +q_17,RSL,Specific humidity at level 17 [g |kg^-1|] +q_18,RSL,Specific humidity at level 18 [g |kg^-1|] +q_19,RSL,Specific humidity at level 19 [g |kg^-1|] +q_20,RSL,Specific humidity at level 20 [g |kg^-1|] +q_21,RSL,Specific humidity at level 21 [g |kg^-1|] +q_22,RSL,Specific humidity at level 22 [g |kg^-1|] +q_23,RSL,Specific humidity at level 23 [g |kg^-1|] +q_24,RSL,Specific humidity at level 24 [g |kg^-1|] +q_25,RSL,Specific humidity at level 25 [g |kg^-1|] +q_26,RSL,Specific humidity at level 26 [g |kg^-1|] +q_27,RSL,Specific humidity at level 27 [g |kg^-1|] +q_28,RSL,Specific humidity at level 28 [g |kg^-1|] +q_29,RSL,Specific humidity at level 29 [g |kg^-1|] +q_30,RSL,Specific humidity at level 30 [g |kg^-1|] HDD1_h,DailyState,Heating degree days [°C] HDD2_c,DailyState,Cooling degree days [°C] HDD3_Tmean,DailyState,Average daily air temperature [°C] diff --git a/docs/source/proc_var_info/df_state.csv b/docs/source/proc_var_info/df_state.csv index 05a3c61d..83ef5c91 100644 --- a/docs/source/proc_var_info/df_state.csv +++ b/docs/source/proc_var_info/df_state.csv @@ -18,7 +18,7 @@ albmin_evetr,0,Effective surface albedo (middle of the day value) for wintertime albmin_grass,0,Effective surface albedo (middle of the day value) for wintertime (not including snow).,:option:`AlbedoMin `,Scalar alpha_bioco2,"(3,)",The mean apparent ecosystem quantum. Represents the initial slope of the light-response curve.,:option:`alpha `,"3: { :term:`EveTr`, :term:`DecTr`, :term:`Grass`}" alpha_enh_bioco2,"(3,)",Part of the `alpha` coefficient related to the fraction of vegetation.,:option:`alpha_enh `,"3: { :term:`EveTr`, :term:`DecTr`, :term:`Grass`}" -alt,0,Used for both the radiation and water flow between grids.,:option:`Alt `,Scalar +alt,0,Altitude of grids [m].,:option:`Alt `,Scalar baset,"(3,)",Base Temperature for initiating growing degree days (GDD) for leaf growth. [°C],:option:`BaseT `,"3: { :term:`EveTr`, :term:`DecTr`, :term:`Grass`}" basete,"(3,)",Base temperature for initiating sensesance degree days (SDD) for leaf off. [°C],:option:`BaseTe `,"3: { :term:`EveTr`, :term:`DecTr`, :term:`Grass`}" basethdd,0,Base temperature for heating degree days [°C],:option:`BaseTHDD `,Scalar @@ -28,6 +28,7 @@ bldgh,0,Mean building height [m],:option:`H_Bldgs `,Scalar capmax_dec,0,Maximum water storage capacity for upper surfaces (i.e. canopy),:option:`StorageMax `,Scalar capmin_dec,0,Minimum water storage capacity for upper surfaces (i.e. canopy).,:option:`StorageMin `,Scalar chanohm,"(7,)",Bulk transfer coefficient for this surface to use in AnOHM [-],:option:`AnOHM_Ch `,"7: { :term:`Paved`, :term:`Bldgs`, :term:`EveTr`, :term:`DecTr`, :term:`Grass`, :term:`BSoil`, :term:`Water`}" +co2pointsource,0,CO2 emission factor [kg |km^-1|],:option:`CO2PointSource `,Scalar cpanohm,"(7,)",Volumetric heat capacity for this surface to use in AnOHM [J |m^-3|],:option:`AnOHM_Cp `,"7: { :term:`Paved`, :term:`Bldgs`, :term:`EveTr`, :term:`DecTr`, :term:`Grass`, :term:`BSoil`, :term:`Water`}" crwmax,0,Maximum water holding capacity of snow [mm],:option:`CRWMax `,Scalar crwmin,0,Minimum water holding capacity of snow [mm],:option:`CRWMin `,Scalar @@ -50,7 +51,7 @@ faibldg,0,Frontal area index for buildings [-],:option:`FAI_Bldgs `,Scalar faievetree,0,Frontal area index for evergreen trees [-],:option:`FAI_EveTr `,Scalar faut,0,Fraction of irrigated area that is irrigated using automated systems,:option:`Faut `,Scalar -fcef_v_kgkm,0,CO2 emission factor [kg |km^-1|],:option:`FcEF_v_kgkm `,Scalar +fcef_v_kgkm,"(2,)",CO2 emission factor for weekdays [kg |km^-1|];;CO2 emission factor for weekends [kg |km^-1|],":option:`FcEF_v_kgkmWD `, :option:`FcEF_v_kgkmWE `","2: {Weekday, Weekend}" flowchange,0,Difference in input and output flows for water surface [mm |h^-1|],:option:`FlowChange `,Scalar frfossilfuel_heat,0,Fraction of fossil fuels used for building heating [-],:option:`FrFossilFuel_Heat `,Scalar frfossilfuel_nonheat,0,Fraction of fossil fuels used for building energy use [-],:option:`FrFossilFuel_NonHeat `,Scalar @@ -86,8 +87,10 @@ laitype,"(3,)",LAI calculation choice.,:option:`LAIEq `,"3: { :term lat,0,Latitude [deg].,:option:`lat `,Scalar lng,0,longitude [deg],:option:`lng `,Scalar maxconductance,"(3,)",The maximum conductance of each vegetation or surface type. [mm |s^-1|],:option:`MaxConductance `,"3: { :term:`EveTr`, :term:`DecTr`, :term:`Grass`}" +maxfcmetab,0,Maximum (day) CO2 from human metabolism. [W |m^-2|],:option:`MaxFCMetab `,Scalar maxqfmetab,0,Maximum value for human heat emission. [W |m^-2|],:option:`MaxQFMetab `,Scalar min_res_bioco2,"(3,)",Minimum soil respiration rate (for cold-temperature limit) [umol |m^-2| |s^-1|].,:option:`min_respi `,"3: { :term:`EveTr`, :term:`DecTr`, :term:`Grass`}" +minfcmetab,0,Minimum (night) CO2 from human metabolism. [W |m^-2|],:option:`MinFCMetab `,Scalar minqfmetab,0,Minimum value for human heat emission. [W |m^-2|],:option:`MinQFMetab `,Scalar narp_emis_snow,0,Effective surface emissivity.,:option:`Emissivity `,Scalar narp_trans_site,0,Atmospheric transmissivity for NARP [-],:option:`NARP_Trans `,Scalar @@ -101,7 +104,7 @@ ohm_threshsw,"(8,)",Temperature threshold determining whether summer/winter OHM ohm_threshwd,"(8,)",Soil moisture threshold determining whether wet/dry OHM coefficients are applied [-],:option:`OHMThresh_WD `,"8: { :term:`Paved`, :term:`Bldgs`, :term:`EveTr`, :term:`DecTr`, :term:`Grass`, :term:`BSoil`, :term:`Water`, one extra land cover type (currently NOT used)} " ohmincqf,0,Determines whether the storage heat flux calculation uses |Qstar| or ( |Qstar| +QF).,:option:`OHMIncQF `,Scalar pipecapacity,0,Storage capacity of pipes [mm],:option:`PipeCapacity `,Scalar -popdensdaytime,0,"Daytime population density (i.e. workers, tourists) [people |ha^-1|]",:option:`PopDensDay `,Scalar +popdensdaytime,"(2,)","Daytime population density (i.e. workers, tourists) [people |ha^-1|]",:option:`PopDensDay `,"2: {Weekday, Weekend}" popdensnighttime,0,Night-time population density (i.e. residents) [people |ha^-1|],:option:`PopDensNight `,Scalar popprof_24hr,"(24, 2)",Hourly profile values used in dynamic population estimation.,":option:`PopProfWD `, :option:`PopProfWE `","24: hours of a day @@ -109,8 +112,8 @@ popprof_24hr,"(24, 2)",Hourly profile values used in dynamic population estimati pormax_dec,0,full leaf-on summertime value Used only for `DecTr` (can affect roughness calculation),:option:`PorosityMax `,Scalar pormin_dec,0,leaf-off wintertime value Used only for `DecTr` (can affect roughness calculation),:option:`PorosityMin `,Scalar porosity_id,0,Porosity of deciduous vegetation on day 0 of run.,:option:`porosity0 `,Scalar -preciplimit,0,Limit for hourly snowfall when the ground is fully covered with snow [mm],:option:`PrecipLimSnow `,Scalar -preciplimitalb,0,Limit for hourly precipitation when the ground is fully covered with snow. Then snow albedo is reset to AlbedoMax [mm],:option:`PrecipLimAlb `,Scalar +preciplimit,0,Temperature limit when precipitation falls as snow [°C],:option:`PrecipLimSnow `,Scalar +preciplimitalb,0,Limit for hourly precipitation when the ground is fully covered with snow [mm],:option:`PrecipLimAlb `,Scalar qf0_beu,"(2,)",Building energy use [W |m^-2|],":option:`QF0_BEU_WD `, :option:`QF0_BEU_WE `","2: {Weekday, Weekend}" qf_a,"(2,)",Base value for QF calculation.,":option:`QF_A_WD `, :option:`QF_A_WE `","2: {Weekday, Weekend}" qf_b,"(2,)",Parameter related to heating degree days.,":option:`QF_B_WD `, :option:`QF_B_WE `","2: {Weekday, Weekend}" diff --git a/docs/source/proc_var_info/gen_df_forcing_output_csv.py b/docs/source/proc_var_info/gen_df_forcing_output_csv.py index 710457e6..612f7934 100644 --- a/docs/source/proc_var_info/gen_df_forcing_output_csv.py +++ b/docs/source/proc_var_info/gen_df_forcing_output_csv.py @@ -30,7 +30,7 @@ # %% url_repo_base = ('https://github.com/' + 'Urban-Meteorology-Reading/' - + 'SUEWS-Docs/raw/master/docs/source') + + 'SUEWS/raw/master/docs/source') url_repo_input = URL(url_repo_base)/'input_files' url_repo_output = URL(url_repo_base)/'output_files' @@ -86,6 +86,7 @@ def gen_df_output( 'SSss_YYYY_SUEWS_TT.csv', 'SSss_DailyState.csv', 'SSss_YYYY_snow_TT.csv', + 'SSss_YYYY_RSL_TT.csv', ], url_base=url_repo_output)->Path: '''Generate description info of supy output results into dataframe diff --git a/docs/source/proc_var_info/gen_df_state_csv.py b/docs/source/proc_var_info/gen_df_state_csv.py index 31ba84c2..6b393604 100644 --- a/docs/source/proc_var_info/gen_df_state_csv.py +++ b/docs/source/proc_var_info/gen_df_state_csv.py @@ -27,10 +27,9 @@ # list of useful URLs url_repo_base = ('https://github.com/' + 'Urban-Meteorology-Reading/' - + 'SUEWS-Docs/raw/master/docs/source') + + 'SUEWS/raw/master/docs/source') url_repo_input = URL(url_repo_base)/'input_files' url_repo_input_site = url_repo_input/'SUEWS_SiteInfo/csv-table' -url_repo_output = URL(url_repo_base)/'output_files' # list of `SUEWS_**.csv `tables list_table = [file.replace('.txt', '.csv') diff --git a/docs/source/proc_var_info/gen_rst.py b/docs/source/proc_var_info/gen_rst.py index d8af8e00..6ac7be05 100644 --- a/docs/source/proc_var_info/gen_rst.py +++ b/docs/source/proc_var_info/gen_rst.py @@ -57,6 +57,7 @@ 'SSss_YYYY_SUEWS_TT.csv', 'SSss_DailyState.csv', 'SSss_YYYY_snow_TT.csv', + 'SSss_YYYY_RSL_TT.csv', ], ) df_output.to_csv('df_output.csv') diff --git a/docs/source/version-history/20190726.rst b/docs/source/version-history/20190726.rst deleted file mode 100644 index ae635dae..00000000 --- a/docs/source/version-history/20190726.rst +++ /dev/null @@ -1,32 +0,0 @@ -.. _new_latest: - -.. _new_20190726: - -Version 2019.7.26.dev0 -====================================================== - - -- **New** - - 1. added WRF-SUEWS related functions. - -- **Improvement** - - None. - -- **Changes** - - None. - - -- **Fix** - - None. - - -- **Known issue** - - ESTM is not supported yet. - - - diff --git a/docs/source/version-history/20190829.rst b/docs/source/version-history/20190829.rst new file mode 100644 index 00000000..507ff387 --- /dev/null +++ b/docs/source/version-history/20190829.rst @@ -0,0 +1,34 @@ +.. _new_latest: +.. _new_20190829: + + +Version 20190829 +====================================================== + + +- **New** + + 1. added WRF-SUEWS related functions. + 2. added `diagnostics of canyon profiles `_. + +- **Improvement** + + None. + +- **Changes** + + 1. synchronised with v2019a interface: minimum supy_driver v2019a2. + + +- **Fix** + + None. + + +- **Known issue** + + 1. ESTM is not supported yet. + 2. BLUEWS, a CBL modules in SUEWS, is not supported yet. + + + diff --git a/docs/source/version-history/version-history.rst b/docs/source/version-history/version-history.rst index 12d9ba1c..31a00c1b 100644 --- a/docs/source/version-history/version-history.rst +++ b/docs/source/version-history/version-history.rst @@ -7,7 +7,7 @@ Version History .. toctree:: :maxdepth: 1 - 20190726 + 20190829 20190717 20190608 20190528 diff --git a/src/setup.py b/src/setup.py index 8efe6ed3..97fa0e5a 100644 --- a/src/setup.py +++ b/src/setup.py @@ -35,7 +35,7 @@ def readme(): ext_modules=[], install_requires=[ 'numpy>=1.15.2', - 'pandas>=0.25.0', + 'pandas>=0.25.1', 'scipy', 'dask[complete]', # needs all dask and its dependencies 'f90nml', @@ -47,7 +47,7 @@ def readme(): 'click', # cmd tool 'lmfit', # optimiser 'floweaver', # wrf reclassification Sankey chart - 'supy_driver>=2018rc8, <2019a1', # a separate f2py-based driver + 'supy_driver>=2019a4', # a separate f2py-based driver ], entry_points={ # command line tools diff --git a/src/supy/_load.py b/src/supy/_load.py index 6449373d..91019761 100644 --- a/src/supy/_load.py +++ b/src/supy/_load.py @@ -128,7 +128,7 @@ def get_args_suews_multitsteps(): # descriptive list/dicts for variables # minimal required input files for configuration: list_file_input = [ - 'SUEWS_AnthropogenicHeat.txt', + 'SUEWS_AnthropogenicEmission.txt', 'SUEWS_BiogenCO2.txt', 'SUEWS_Conductance.txt', 'SUEWS_ESTMCoefficients.txt', @@ -680,56 +680,56 @@ def load_SUEWS_Forcing_met_df_pattern(path_input, forcingfile_met_pattern): # load raw data: met forcing -def load_SUEWS_Forcing_ESTM_df_raw( - path_input, filecode, grid, tstep_ESTM_in, multipleestmfiles): - # file name pattern for met files - forcingfile_ESTM_pattern = '{site}{grid}*{tstep}*txt'.format( - site=filecode, - grid=(grid if multipleestmfiles == 1 else ''), - tstep=tstep_ESTM_in / 60) - - # list of met forcing files - list_file_MetForcing = [ - f for f in path_input.glob(forcingfile_ESTM_pattern) - if 'ESTM' in f] - - # load raw data - df_forcing_estm = pd.concat( - [pd.read_table( - fileX, - delim_whitespace=True, - comment='!', - error_bad_lines=True - # parse_dates={'datetime': [0, 1, 2, 3]}, - # keep_date_col=True, - # date_parser=func_parse_date - ).dropna() for fileX in list_file_MetForcing], - ignore_index=True).rename( - columns={ - '%' + 'iy': 'iy', - 'id': 'id', - 'it': 'it', - 'imin': 'imin', - 'kdown': 'avkdn', - 'RH': 'avrh', - 'U': 'avu1', - 'fcld': 'fcld_obs', - 'lai': 'lai_obs', - 'ldown': 'ldown_obs', - 'rain': 'precip', - 'pres': 'press_hpa', - 'qh': 'qh_obs', - 'qn': 'qn1_obs', - 'snow': 'snow_obs', - 'Tair': 'temp_c', - # 'all': 'metforcingdata_grid', - 'xsmd': 'xsmd'}) - - # set correct data types - df_forcing_estm[['iy', 'id', 'it', 'imin']] = df_forcing_estm[[ - 'iy', 'id', 'it', 'imin']].astype(np.int64) - - return df_forcing_estm +# def load_SUEWS_Forcing_ESTM_df_raw( +# path_input, filecode, grid, tstep_ESTM_in, multipleestmfiles): +# # file name pattern for met files +# forcingfile_ESTM_pattern = '{site}{grid}*{tstep}*txt'.format( +# site=filecode, +# grid=(grid if multipleestmfiles == 1 else ''), +# tstep=tstep_ESTM_in / 60) + +# # list of met forcing files +# list_file_MetForcing = [ +# f for f in path_input.glob(forcingfile_ESTM_pattern) +# if 'ESTM' in f] + +# # load raw data +# df_forcing_estm = pd.concat( +# [pd.read_table( +# fileX, +# delim_whitespace=True, +# comment='!', +# error_bad_lines=True +# # parse_dates={'datetime': [0, 1, 2, 3]}, +# # keep_date_col=True, +# # date_parser=func_parse_date +# ).dropna() for fileX in list_file_MetForcing], +# ignore_index=True).rename( +# columns={ +# '%' + 'iy': 'iy', +# 'id': 'id', +# 'it': 'it', +# 'imin': 'imin', +# 'kdown': 'avkdn', +# 'RH': 'avrh', +# 'U': 'avu1', +# 'fcld': 'fcld_obs', +# 'lai': 'lai_obs', +# 'ldown': 'ldown_obs', +# 'rain': 'precip', +# 'pres': 'press_hpa', +# 'qh': 'qh_obs', +# 'qn': 'qn1_obs', +# 'snow': 'snowfrac_obs', +# 'Tair': 'temp_c', +# # 'all': 'metforcingdata_grid', +# 'xsmd': 'xsmd'}) + +# # set correct data types +# df_forcing_estm[['iy', 'id', 'it', 'imin']] = df_forcing_estm[[ +# 'iy', 'id', 'it', 'imin']].astype(np.int64) + +# return df_forcing_estm # TODO: add support for loading multi-grid forcing datasets @@ -1521,21 +1521,31 @@ def add_state_init_df(df_init): df_init[('gdd_id', '(3,)')] = -90 # `popdens` corrections: - ser_popdens_day = df_init[('popdensdaytime', '0')] + # daytime population density on weekdays + ser_popdens_day_1 = df_init[('popdensdaytime', '(0,)')] + # nighttime population density on weekdays ser_popdens_night = df_init[('popdensnighttime', '0')] + # if daytime popdens missing and nighttime one existing: - flag_replace_day = (ser_popdens_day < 0) & (ser_popdens_night >= 0) - df_init.loc[flag_replace_day, 'popdensdaytime'] = \ + flag_replace_day = (ser_popdens_day_1 < 0) & (ser_popdens_night >= 0) + df_init.loc[flag_replace_day, ('popdensdaytime', '(0,)')] = \ ser_popdens_night[flag_replace_day] # if nighttime popdens missing and daytime one existing: - flag_replace_night = (ser_popdens_night < 0) & (ser_popdens_day >= 0) - df_init.loc[flag_replace_night, 'popdensnighttime'] = \ - ser_popdens_day[flag_replace_night] + flag_replace_night = (ser_popdens_night < 0) & (ser_popdens_day_1 >= 0) + df_init.loc[flag_replace_night, ('popdensnighttime', '0')] = \ + ser_popdens_day_1[flag_replace_night] + + # Fraction of weekend population to weekday population + ser_frpddwe = df_init[('frpddwe', '0')] + ser_popdens_day_2 = ser_popdens_night + \ + (ser_popdens_day_1-ser_popdens_night)*ser_frpddwe + df_init[('popdensdaytime', '(1,)')] = ser_popdens_day_2 # `numcapita` calculation: - df_init[('numcapita', '0')] = \ - df_init[['popdensdaytime', 'popdensnighttime']]\ - .mean(axis=1) + df_init[('numcapita', '(0,)')] = df_init[[ + ('popdensdaytime', '(0,)'), ('popdensnighttime', '0')]].mean(axis=1) + df_init[('numcapita', '(1,)')] = df_init[[ + ('popdensdaytime', '(1,)'), ('popdensnighttime', '0')]].mean(axis=1) # `gridiv` addition: df_init[('gridiv', '0')] = df_init.index diff --git a/src/supy/_supy_module.py b/src/supy/_supy_module.py index 3d454f52..627ce2f7 100644 --- a/src/supy/_supy_module.py +++ b/src/supy/_supy_module.py @@ -35,7 +35,7 @@ from ._env import path_supy_module from ._load import (load_InitialCond_grid_df, load_SUEWS_dict_ModConfig, - load_SUEWS_Forcing_ESTM_df_raw, + # load_SUEWS_Forcing_ESTM_df_raw, load_SUEWS_Forcing_met_df_raw, load_df_state, resample_forcing_met, @@ -252,7 +252,7 @@ def load_SampleData() -> Tuple[pandas.DataFrame, pandas.DataFrame]: path_SampleData = Path(path_supy_module) / 'sample_run' path_runcontrol = path_SampleData / 'RunControl.nml' - df_state_init = init_supy(path_runcontrol) + df_state_init = init_supy(path_runcontrol, force_reload=False) # path_input = path_runcontrol.parent / ser_mod_cfg['fileinputpath'] df_forcing = load_forcing_grid( path_runcontrol, @@ -304,7 +304,6 @@ def run_supy( ''' - # set up a timer for simulation time start = time.time() @@ -353,7 +352,7 @@ def run_supy( 'pres': 'press_hpa', 'rain': 'precip', 'kdown': 'avkdn', - 'snow': 'snow_obs', + 'snow': 'snowfrac_obs', 'ldown': 'ldown_obs', 'fcld': 'fcld_obs', 'Wuh': 'wu_m3', @@ -382,7 +381,7 @@ def run_supy( 'press_hpa', 'precip', 'avkdn', - 'snow_obs', + 'snowfrac_obs', 'ldown_obs', 'fcld_obs', 'wu_m3', @@ -435,6 +434,7 @@ def run_supy( # initialise output of tstep: # load met_forcing if the same across all grids: met_forcing_tstep = dict_forcing[tstep] + # print(met_forcing_tstep.keys()) # spatial loop for grid in list_grid: dict_state_start = dict_state[(tstep, grid)] @@ -459,7 +459,9 @@ def run_supy( else: # for multi-year run, reduce the whole df_forcing into {n_yr}-year chunks for less memory consumption - grp_forcing_yr = df_forcing.groupby(df_forcing.index.year // n_yr) + yr_start = df_forcing.index.min().year + yr_all = df_forcing.index.year + grp_forcing_yr = df_forcing.groupby((yr_all-yr_start) // n_yr) if len(grp_forcing_yr) > 1: df_state_init_yr = df_state_init.copy() list_df_output = [] @@ -469,7 +471,7 @@ def run_supy( df_forcing_yr = grp_forcing_yr.get_group(grp) # run supy: actual execution done in the `else` clause below df_output_yr, df_state_final_yr = run_supy( - df_forcing_yr, df_state_init_yr) + df_forcing_yr, df_state_init_yr, n_yr=n_yr) df_state_init_yr = df_state_final_yr.copy() # collect results list_df_output.append(df_output_yr) @@ -494,12 +496,21 @@ def run_supy( for grid in list_grid ] - # on windows `processes` has issues when importing - # so set `threads` here - method_parallel = 'threads' if os.name == 'nt' else 'processes' - list_res = db.from_sequence(list_input)\ - .map(suews_cal_tstep_multi, df_forcing)\ - .compute(scheduler=method_parallel) + if len(list_input) > 1: + # if multiple grids to simulate + # run simulations in parallel + + # on windows `processes` has issues when importing + # so set `threads` here + method_parallel = 'threads' if os.name == 'nt' else 'processes' + list_res = db.from_sequence(list_input)\ + .map(suews_cal_tstep_multi, df_forcing)\ + .compute(scheduler=method_parallel) + else: + # + list_res = [ + suews_cal_tstep_multi(input_grid, df_forcing) + for input_grid in list_input] try: list_state_end, list_output_array = zip(*list_res) except: @@ -525,7 +536,11 @@ def run_supy( # drop ESTM for now as it is not supported yet # select only those supported output groups - df_output = df_output.loc[:, ['SUEWS', 'snow', 'DailyState']] + list_group_use = [ + group for group in df_output.columns.levels[0] + if group not in ['ESTM'] + ] + df_output = df_output.loc[:, list_group_use] # trim multi-index based columns df_output.columns = df_output.columns.remove_unused_levels() diff --git a/src/supy/code2file.json b/src/supy/code2file.json index 284ea64b..586ab3fd 100644 --- a/src/supy/code2file.json +++ b/src/supy/code2file.json @@ -1,7 +1,7 @@ { "ActivityProfWD": "SUEWS_Profiles.txt", "ActivityProfWE": "SUEWS_Profiles.txt", - "AnthropogenicCode": "SUEWS_AnthropogenicHeat.txt", + "AnthropogenicCode": "SUEWS_AnthropogenicEmission.txt", "BiogenCO2Code": "SUEWS_BiogenCO2.txt", "Code_Bldgs": "SUEWS_NonVeg.txt", "Code_Bsoil": "SUEWS_NonVeg.txt", diff --git a/src/supy/sample_run/Input/SUEWS_AnthropogenicEmission.txt b/src/supy/sample_run/Input/SUEWS_AnthropogenicEmission.txt new file mode 100644 index 00000000..a9cc01f2 --- /dev/null +++ b/src/supy/sample_run/Input/SUEWS_AnthropogenicEmission.txt @@ -0,0 +1,15 @@ +1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 +Code BaseTHDD QF_A_WD QF_B_WD QF_C_WD QF_A_WE QF_B_WE QF_C_WE AHMin_WD AHMin_WE AHSlope_Heating_WD AHSlope_Heating_WE AHSlope_Cooling_WD AHSlope_Cooling_WE TCritic_Heating_WD TCritic_Heating_WE TCritic_Cooling_WD TCritic_Cooling_WE EnergyUseProfWD EnergyUseProfWE ActivityProfWD ActivityProfWE TraffProfWD TraffProfWE PopProfWD PopProfWE MinQFMetab MaxQFMetab MinFCMetab MaxFCMetab FrPDDwe FrFossilFuel_Heat FrFossilFuel_NonHeat EF_umolCO2perJ EnEF_v_Jkm FcEF_v_kgkmWD FcEF_v_kgkmWE CO2PointSource TrafficUnits +10 18.2000 0.1000 0.0099 0.0102 0.1000 0.0099 0.0102 15.0000 15.0000 2.7000 2.7000 2.7000 2.7000 7.0000 7.0000 7.0000 7.0000 44.0000 45.0000 55663.0000 55664.0000 701.0000 702.0000 801.0000 802.0000 75.0000 175.0000 120.0000 280.0000 1.0000 0.0500 0.0000 1.1590 3970000.0000 0.2850 0.2850 0 1.0000 +11 18.2000 0.3081 0.0099 0.0102 0.3081 0.0099 0.0102 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 44.0000 45.0000 55663.0000 55664.0000 701.0000 702.0000 801.0000 802.0000 75.0000 175.0000 120.0000 280.0000 1.0000 0.0500 0.0000 1.1590 4110000.0000 0.2850 0.2850 0 1.0000 +551 18.2000 0.1446 0.0000 0.0037 0.1329 0.0000 0.0038 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 42.0000 43.0000 55663.0000 55664.0000 701.0000 702.0000 801.0000 802.0000 75.0000 175.0000 120.0000 280.0000 1.0000 0.7000 0.7000 1.1590 3970000.0000 0.2850 0.2850 0 1.0000 +5512 18.2000 0.3081 0.0099 0.0102 0.3081 0.0099 0.0102 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 -999.0000 42.0000 43.0000 55663.0000 55664.0000 701.0000 702.0000 801.0000 802.0000 75.0000 175.0000 120.0000 280.0000 1.0000 0.7000 0.7000 1.1590 3970000.0000 0.2850 0.2850 0 1.0000 +661 18.2000 0.3081 0.0099 0.0102 0.3081 0.0099 0.0102 15.0000 15.0000 2.7000 2.7000 2.7000 2.7000 7.0000 7.0000 7.0000 7.0000 42.0000 43.0000 55663.0000 55664.0000 701.0000 702.0000 801.0000 802.0000 75.0000 175.0000 120.0000 280.0000 1.0000 0.7000 0.7000 1.1590 3970000.0000 0.2850 0.2850 0 1.0000 +2 18.2000 0.1000 0.0099 0.0200 0.1000 0.0099 0.0200 15.0000 15.0000 2.7000 2.7000 2.7000 2.7000 7.0000 7.0000 7.0000 7.0000 44.0000 45.0000 55663.0000 55664.0000 701.0000 702.0000 801.0000 802.0000 75.0000 175.0000 120.0000 280.0000 1.0000 0.0500 0.0000 1.1590 4110000.0000 0.2850 0.2850 0 1.0000 +3 18.2000 0.1000 0.0099 0.0300 0.1000 0.0099 0.0300 15.0000 15.0000 2.7000 2.7000 2.7000 2.7000 7.0000 7.0000 7.0000 7.0000 44.0000 45.0000 55663.0000 55664.0000 701.0000 702.0000 801.0000 802.0000 75.0000 175.0000 120.0000 280.0000 1.0000 0.0500 0.0000 1.1590 4110000.0000 0.2850 0.2850 0 1.0000 +4 18.2000 0.1000 0.0099 0.0400 0.1000 0.0099 0.0400 15.0000 15.0000 2.7000 2.7000 2.7000 2.7000 7.0000 7.0000 7.0000 7.0000 44.0000 45.0000 55663.0000 55664.0000 701.0000 702.0000 801.0000 802.0000 75.0000 175.0000 120.0000 280.0000 1.0000 0.0500 0.0000 1.1590 4110000.0000 0.2850 0.2850 0 1.0000 +51 18.2000 0.1217 0.0099 0.0400 0.1156 0.0099 0.0400 15.0000 15.0000 2.7000 2.7000 2.7000 2.7000 7.0000 7.0000 7.0000 7.0000 44.0000 45.0000 55663.0000 55664.0000 701.0000 702.0000 801.0000 802.0000 75.0000 175.0000 120.0000 280.0000 1.0000 0.0500 0.0000 1.1590 4110000.0000 0.2850 0.2850 0 1.0000 +52 18.2000 0.1702 0.0099 0.0400 0.1446 0.0099 0.0400 15.0000 15.0000 2.7000 2.7000 2.7000 2.7000 7.0000 7.0000 7.0000 7.0000 44.0000 45.0000 55663.0000 55664.0000 701.0000 702.0000 801.0000 802.0000 75.0000 175.0000 120.0000 280.0000 1.0000 0.0500 0.0000 1.1590 4110000.0000 0.2850 0.2850 0 1.0000 +53 18.2000 0.0772 0.0099 0.0400 0.0754 0.0099 0.0400 15.0000 15.0000 2.7000 2.7000 2.7000 2.7000 7.0000 7.0000 7.0000 7.0000 44.0000 45.0000 55663.0000 55664.0000 701.0000 702.0000 801.0000 802.0000 75.0000 175.0000 120.0000 280.0000 1.0000 0.0500 0.0000 1.1590 4110000.0000 0.2850 0.2850 0 1.0000 +-9 +-9 diff --git a/src/supy/sample_run/Input/SUEWS_AnthropogenicHeat.txt b/src/supy/sample_run/Input/SUEWS_AnthropogenicHeat.txt deleted file mode 100644 index 119a6e07..00000000 --- a/src/supy/sample_run/Input/SUEWS_AnthropogenicHeat.txt +++ /dev/null @@ -1,16 +0,0 @@ -1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 -Code BaseTHDD QF_A_WD QF_B_WD QF_C_WD QF_A_WE QF_B_WE QF_C_WE AHMin_WD AHMin_WE AHSlope_Heating_WD AHSlope_Heating_WE AHSlope_Cooling_WD AHSlope_Cooling_WE TCritic_Heating_WD TCritic_Heating_WE TCritic_Cooling_WD TCritic_Cooling_WE EnergyUseProfWD EnergyUseProfWE ActivityProfWD ActivityProfWE TraffProfWD TraffProfWE PopProfWD PopProfWE MinQFMetab MaxQFMetab FrFossilFuel_Heat FrFossilFuel_NonHeat EF_umolCO2perJ EnEF_v_Jkm FcEF_v_kgkm TrafficUnits -10 18.2 0.1 0.00986 0.0102 0.1 0.00986 0.0102 15 15 2.7 2.7 2.7 2.7 7 7 7 7 44 45 55663 55664 701 702 801 802 75 175 0.05 0 1.159 3.97e6 0.285 1 ! Helsinki Jarvi et al 2014 -11 18.2 0.3081 0.0099 0.0102 0.3081 0.0099 0.0102 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 44 45 55663 55664 701 702 801 802 75 175 0.05 0 1.159 4.11e6 0.38 1 ! Järvi et al. (2011) - MD -551 18.2 0.1445807 0.0000000 0.0037491 0.1329150 0.0000000 0.0037537 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 42 43 55663 55664 701 702 801 802 75 175 0.7 0.7 1.159 3.97e6 0.2069 1 ! Swindon fit Ward et al. (2013) -5512 18.2 0.3081357 0.0098631 0.0101826 0.3081357 0.0098631 0.0101826 -999 -999 -999 -999 -999 -999 -999 -999 -999 -999 42 43 55663 55664 701 702 801 802 75 175 0.7 0.7 1.159 3.97e6 0.2069 1 ! Swindon (default) -661 18.2 0.3081357 0.0098631 0.0101826 0.3081357 0.0098631 0.0101826 15 15 2.7 2.7 2.7 2.7 7 7 7 7 42 43 55663 55664 701 702 801 802 75 175 0.7 0.7 1.159 3.97e6 0.2069 1 ! London -2 18.2 0.1 0.00986 0.02 0.1 0.00986 0.02 15 15 2.7 2.7 2.7 2.7 7 7 7 7 44 45 55663 55664 701 702 801 802 75 175 0.05 0 1.159 4.11e6 0.285 1 ! Helsinki Jarvi et al 2014 -3 18.2 0.1 0.00986 0.03 0.1 0.00986 0.03 15 15 2.7 2.7 2.7 2.7 7 7 7 7 44 45 55663 55664 701 702 801 802 75 175 0.05 0 1.159 4.11e6 0.285 1 ! Helsinki Jarvi et al 2014 -4 18.2 0.1 0.00986 0.04 0.1 0.00986 0.04 15 15 2.7 2.7 2.7 2.7 7 7 7 7 44 45 55663 55664 701 702 801 802 75 175 0.05 0 1.159 4.11e6 0.285 1 ! Helsinki Jarvi et al 2014 -51 18.2 0.1217 0.00986 0.04 0.1156 0.00986 0.04 15 15 2.7 2.7 2.7 2.7 7 7 7 7 44 45 55663 55664 701 702 801 802 75 175 0.05 0 1.159 4.11e6 0.285 1 ! Helsinki Jarvi et al 2014 -52 18.2 0.1702 0.00986 0.04 0.1446 0.00986 0.04 15 15 2.7 2.7 2.7 2.7 7 7 7 7 44 45 55663 55664 701 702 801 802 75 175 0.05 0 1.159 4.11e6 0.285 1 ! Helsinki Jarvi et al 2014 -53 18.2 0.0772 0.00986 0.04 0.0754 0.00986 0.04 15 15 2.7 2.7 2.7 2.7 7 7 7 7 44 45 55663 55664 701 702 801 802 75 175 0.05 0 1.159 4.11e6 0.285 1 ! Helsinki Jarvi et al 2014 -771 18.2 0.3182298 0.007049 0.0292658 0.3182298 0.0070491 0.0292658 15 15 2.7 2.7 2.7 2.7 7 7 7 7 42 43 55663 55664 701 702 801 802 75 175 0.7 0.7 1.159 3.97E+06 0.2069 1 ! Sailor et al. 2015, AE New York New York City --9 --9 \ No newline at end of file diff --git a/src/supy/sample_run/Input/SUEWS_SiteSelect.txt b/src/supy/sample_run/Input/SUEWS_SiteSelect.txt index 7e44eeb1..df289b21 100644 --- a/src/supy/sample_run/Input/SUEWS_SiteSelect.txt +++ b/src/supy/sample_run/Input/SUEWS_SiteSelect.txt @@ -1,5 +1,5 @@ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 Grid Year StartDLS EndDLS lat lng Timezone SurfaceArea Alt z id ih imin Fr_Paved Fr_Bldgs Fr_EveTr Fr_DecTr Fr_Grass Fr_Bsoil Fr_Water IrrFr_EveTr IrrFr_DecTr IrrFr_Grass H_Bldgs H_EveTr H_DecTr z0 zd FAI_Bldgs FAI_EveTr FAI_DecTr PopDensDay PopDensNight TrafficRate_WD TrafficRate_WE QF0_BEU_WD QF0_BEU_WE Code_Paved Code_Bldgs Code_EveTr Code_DecTr Code_Grass Code_Bsoil Code_Water LUMPS_DrRate LUMPS_Cover LUMPS_MaxRes NARP_Trans CondCode SnowCode SnowClearingProfWD SnowClearingProfWE AnthropogenicCode IrrigationCode WaterUseProfManuWD WaterUseProfManuWE WaterUseProfAutoWD WaterUseProfAutoWE FlowChange RunoffToWater PipeCapacity GridConnection1of8 Fraction1of8 GridConnection2of8 Fraction2of8 GridConnection3of8 Fraction3of8 GridConnection4of8 Fraction4of8 GridConnection5of8 Fraction5of8 GridConnection6of8 Fraction6of8 GridConnection7of8 Fraction7of8 GridConnection8of8 Fraction8of8 WithinGridPavedCode WithinGridBldgsCode WithinGridEveTrCode WithinGridDecTrCode WithinGridGrassCode WithinGridUnmanBSoilCode WithinGridWaterCode AreaWall Fr_ESTMClass_Paved1 Fr_ESTMClass_Paved2 Fr_ESTMClass_Paved3 Code_ESTMClass_Paved1 Code_ESTMClass_Paved2 Code_ESTMClass_Paved3 Fr_ESTMClass_Bldgs1 Fr_ESTMClass_Bldgs2 Fr_ESTMClass_Bldgs3 Fr_ESTMClass_Bldgs4 Fr_ESTMClass_Bldgs5 Code_ESTMClass_Bldgs1 Code_ESTMClass_Bldgs2 Code_ESTMClass_Bldgs3 Code_ESTMClass_Bldgs4 Code_ESTMClass_Bldgs5 ! Site Reference -98 2012 85 302 51.51 0.12 0 2221.56 10.7 49.6 1 0 0 0.430 0.380 0.001 0.019 0.029 0.001 0.140 0 0 0 22 13.1 13.1 1.9 14.2 -999.0 -999.0 -999.0 -999 204.58 -999 -999 0.88 0.88 661 662 661 662 663 663 661 0.25 1 10 1 200 660 99999 99999 661 99999 99999 99999 99999 99999 0 0 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 661 662 663 664 665 666 667 1.08 0.15 0.05 0.8 806 807 808 0.15 0.45 0.05 0.1 0.25 801 8021 8022 803 8041 ! London Kotthaus and Grimmond (2013, 2014a, 2014b) +98 2012 85 302 51.51 0.12 0 2221.56 10.7 49.6 1 0 0 0.430 0.380 0.001 0.019 0.029 0.001 0.140 0 0 0 22 13.1 13.1 1.9 14.2 0.3 0.3 0.3 -999 204.58 -999 -999 0.88 0.88 661 662 661 662 663 663 661 0.25 1 10 1 200 660 99999 99999 661 99999 99999 99999 99999 99999 0 0 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 661 662 663 664 665 666 667 1.08 0.15 0.05 0.8 806 807 808 0.15 0.45 0.05 0.1 0.25 801 8021 8022 803 8041 ! London Kotthaus and Grimmond (2013, 2014a, 2014b) -9 -9 diff --git a/src/supy/supy_version.json b/src/supy/supy_version.json index c2241627..e50ce8f3 100644 --- a/src/supy/supy_version.json +++ b/src/supy/supy_version.json @@ -1,6 +1,6 @@ { "ver_milestone": 2019, - "ver_major": 7, - "ver_minor": 26, + "ver_major": 8, + "ver_minor": 29, "ver_remark": " " } \ No newline at end of file diff --git a/src/supy/test/test-SuPy.py b/src/supy/test/test-SuPy.py index a4421c76..9ce04f90 100644 --- a/src/supy/test/test-SuPy.py +++ b/src/supy/test/test-SuPy.py @@ -47,11 +47,10 @@ def test_is_supy_running_multi_step(self): # only print to screen on macOS due incompatibility on Windows if platform.system() == 'Darwin': - t_usage_str = 'Running time: '+str(t_end-t_start) capturedOutput = io.StringIO() # Create StringIO object sys.stdout = capturedOutput # and redirect stdout. # Call function. - print('Running time: {:.2f} s'.format(t_end-t_start)) + print(f'Running time: {t_end-t_start:.2f} s') sys.stdout = sys.__stdout__ # Reset redirect. # Now works as before. print('Captured:\n', capturedOutput.getvalue()) diff --git a/src/supy/util/_era5.py b/src/supy/util/_era5.py index 0ceff598..cf76d0e8 100644 --- a/src/supy/util/_era5.py +++ b/src/supy/util/_era5.py @@ -1,5 +1,8 @@ try: import cdsapi + # suppress pandas warnings + import warnings + warnings.simplefilter(action='ignore', category=FutureWarning) import xarray as xr import atmosp except: diff --git a/src/supy/util/_plot.py b/src/supy/util/_plot.py index 90fcad09..453f9d2a 100644 --- a/src/supy/util/_plot.py +++ b/src/supy/util/_plot.py @@ -27,13 +27,16 @@ def plot_day_clm(df_var, fig=None, ax=None): fig = ax.get_figure() elif ax is None: ax = fig.gca() - # plt.clf() + # group by hour and minute grp_sdf_var = df_var.groupby( [df_var.index.hour.rename('hr'), df_var.index.minute.rename('min')]) # get index - idx = [pd.datetime(2014, 1, 1, h, m) + year = df_var.index.year.min() + month = df_var.index.month.min() + day = df_var.index.day.min() + idx = [pd.datetime(year, month, day, h, m) for h, m in sorted(grp_sdf_var.groups.keys())] idx = pd.date_range(idx[0], idx[-1], periods=len(idx)) idx = mdates.date2num(idx) diff --git a/src/supy/var2siteselect.json b/src/supy/var2siteselect.json index 3b801c2d..0101fd3b 100644 --- a/src/supy/var2siteselect.json +++ b/src/supy/var2siteselect.json @@ -124,6 +124,9 @@ "Code_Bsoil": "AnOHM_Ch", "Code_Water": "AnOHM_Ch" }, + "co2pointsource":{ + "AnthropogenicCode": "CO2PointSource" + }, "cpanohm": { "Code_Paved": "AnOHM_Cp", "Code_Bldgs": "AnOHM_Cp", @@ -187,7 +190,10 @@ "IrrigationCode": "Faut" }, "fcef_v_kgkm": { - "AnthropogenicCode": "FcEF_v_kgkm" + "AnthropogenicCode": [ + "FcEF_v_kgkmWD", + "FcEF_v_kgkmWE" + ] }, "flowchange": "FlowChange", "frfossilfuel_heat": { @@ -196,6 +202,9 @@ "frfossilfuel_nonheat": { "AnthropogenicCode": "FrFossilFuel_NonHeat" }, + "frpddwe": { + "AnthropogenicCode": "FrPDDwe" + }, "g1": { "CondCode": "G1" }, @@ -308,6 +317,9 @@ "Code_DecTr": "MaxConductance", "Code_Grass": "MaxConductance" }, + "maxfcmetab": { + "AnthropogenicCode": "MaxFCMetab" + }, "maxqfmetab": { "AnthropogenicCode": "MaxQFMetab" }, @@ -322,6 +334,9 @@ "BiogenCO2Code": "min_respi" } }, + "minfcmetab": { + "AnthropogenicCode": "MinFCMetab" + }, "minqfmetab": { "AnthropogenicCode": "MinQFMetab" }, @@ -528,7 +543,10 @@ "SnowCode": "OHMThresh_WD" }, "pipecapacity": "PipeCapacity", - "popdensdaytime": "PopDensDay", + "popdensdaytime": [ + "PopDensDay", + "PopDensDay" + ], "popdensnighttime": "PopDensNight", "popprof_24hr": { "AnthropogenicCode": {