Soil types and related properties of the Ahr catchment area's.

Autosaving every 400 seconds

Land cover fraction map of Germany at 10m spatial resolution

based on Sentinel-1 and Sentinel-2 spectral temporal metrics.

PANGAEA, https://doi.org/10.1594/PANGAEA.920894
This enhanced set makes use of Sentinel-1 imagery, which reduces confusion of built-up features and seasonal soil-covered surfaces. Sentinel-2 Tasseled Cap Greenness is a more robust indicator for vegetation in temperate regions than the NDVI, which was used in the corresponding publication. The file is in GeoTiff format and contains three bands:

  • Band 1 - Fraction of built-up surfaces and infrastructure
  • Band 2 - Fraction of woody vegetation
  • Band 3 - Fraction of non-woody vegetation
Out[15]:
CRS.from_wkt('PROJCS["ETRS89_LAEA_Europe",GEOGCS["GCS_ETRS_1989",DATUM["unnamed",SPHEROID["unnamed",6378137,298.257222101004],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1],AXIS["Easting",EAST],AXIS["Northing",NORTH]]')
Out[4]:
CRS.from_wkt('PROJCS["ETRS89_LAEA_Europe",GEOGCS["ETRS89",DATUM["unnamed",SPHEROID["unnamed",6378137,298.257222101004],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1],AXIS["Easting",EAST],AXIS["Northing",NORTH]]')
{'driver': 'GTiff', 'dtype': 'uint8', 'nodata': 255.0, 'width': 66000, 'height': 90000, 'count': 3, 'crs': CRS.from_wkt('PROJCS["ETRS89_LAEA_Europe",GEOGCS["GCS_ETRS_1989",DATUM["unnamed",SPHEROID["unnamed",6378137,298.257222101004],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1],AXIS["Easting",EAST],AXIS["Northing",NORTH]]'), 'transform': Affine(10.0, 0.0, 4016026.25,
       0.0, -10.0, 3554919.5)}
Out[9]:
<AxesSubplot:>

shapefile used to clip the big LC map:

Out[5]:
<AxesSubplot:>
Out[6]:
<Geographic 2D CRS: GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84" ...>
Name: WGS 84
Axis Info [ellipsoidal]:
- lon[east]: Longitude (Degree)
- lat[north]: Latitude (Degree)
Area of Use:
- undefined
Datum: World Geodetic System 1984
- Ellipsoid: WGS 84
- Prime Meridian: Greenwich

this reproject in 6258 crs did not work: https://epsg.io/3035

Out[7]:
<Projected CRS: EPSG:3035>
Name: ETRS89-extended / LAEA Europe
Axis Info [cartesian]:
- Y[north]: Northing (metre)
- X[east]: Easting (metre)
Area of Use:
- name: Europe - European Union (EU) countries and candidates. Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Iceland; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal including Madeira and Azores; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain including Canary Islands; Sweden; Switzerland; Turkey; United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.
- bounds: (-35.58, 24.6, 44.83, 84.17)
Coordinate Operation:
- name: Europe Equal Area 2001
- method: Lambert Azimuthal Equal Area
Datum: European Terrestrial Reference System 1989
- Ellipsoid: GRS 1980
- Prime Meridian: Greenwich
Out[12]:
CRS.from_wkt('PROJCS["ETRS89_LAEA_Europe",GEOGCS["GCS_ETRS_1989",DATUM["unnamed",SPHEROID["unnamed",6378137,298.257222101004],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1],AXIS["Easting",EAST],AXIS["Northing",NORTH]]')
Out[16]:
{'driver': 'GTiff', 'dtype': 'uint8', 'nodata': 255.0, 'width': 3991, 'height': 3728, 'count': 3, 'crs': CRS.from_wkt('PROJCS["ETRS89_LAEA_Europe",GEOGCS["GCS_ETRS_1989",DATUM["unnamed",SPHEROID["unnamed",6378137,298.257222101004],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",52],PARAMETER["longitude_of_center",10],PARAMETER["false_easting",4321000],PARAMETER["false_northing",3210000],UNIT["metre",1],AXIS["Easting",EAST],AXIS["Northing",NORTH]]'), 'transform': Affine(10.0, 0.0, 4077226.25,
       0.0, -10.0, 3056199.5), 'tiled': False, 'interleave': 'pixel'}
Out[18]:
<AxesSubplot:>

clip UpperAhr catchments

Out[23]:
<AxesSubplot:>
Out[57]:
[{'min': 0.0000,
  'max': 100.0000,
  'count': 2523446,
  'sum': 7903620.0000,
  'median': 0.0000,
  'percentile_75': 2.0,
  'nodata': 0.0000}]
Out[59]:
[{'min': 0.0000,
  'max': 100.0000,
  'count': 2523446,
  'sum': 109433728.0000,
  'median': 31.0000,
  'percentile_75': 89.0,
  'nodata': 0.0000}]
Out[63]:
43.3668
Out[39]:
list
Out[62]:
[{'min': 0.0000,
  'max': 100.0000,
  'count': 2523446,
  'sum': 143891759.0000,
  'median': 72.0000,
  'percentile_75': 99.0,
  'nodata': 0.0000}]
Out[64]:
57.0219

clip Weidenbach catchment

Out[48]:
<AxesSubplot:>

Forest area of 2015 vs 2019: impact on the different forest types

The forest types have been taken from the Corine land cover rasters.

Forest areas 2015 and Corine CLC

Out[5]:
count
value
0.000 4486617 448,936,416.610
112.000 11051 1,105,776.655
121.000 208 20,812.736
122.000 219 21,913.409
131.000 433 43,326.513
133.000 9 900.551
142.000 1405 140,586.028
211.000 8646 865,129.397
231.000 246235 24,638,577.027
242.000 462 46,228.288
243.000 487 48,729.819
311.000 1506109 150,703,119.407
312.000 1388409 138,925,912.608
313.000 255195 25,535,125.650
321.000 249 24,915.246
324.000 11749 1,175,619.394
Out[170]:
343296672.72912234
Out[172]:
130.77214324313454

Forest areas 2019 and Corine CLC

Out[6]:
count
value
0.000 4486617 448,936,416.610
112.000 11051 1,105,776.655
121.000 208 20,812.736
122.000 219 21,913.409
131.000 433 43,326.513
133.000 9 900.551
142.000 1405 140,586.028
211.000 8646 865,129.397
231.000 246235 24,638,577.027
242.000 462 46,228.288
243.000 487 48,729.819
311.000 1506109 150,703,119.407
312.000 1388409 138,925,912.608
313.000 255195 25,535,125.650
321.000 249 24,915.246
324.000 11749 1,175,619.394

Type of forest vs. forest area

broadleaf forestarea 47.81734081803644 coniferous forestarea 44.080492413118286 mix forestarea 8.10216676884529
Out[18]:
343296672.72912234

Type of forest vs. the total area

broadleaf forestarea 43.89879989483705 coniferous forestarea 40.46817917108975 mix forestarea 7.438209478306644

Forest areas anno 2015 by catchment

Out[7]:
HISTO_NODA HISTO_0 HISTO_112 HISTO_121 HISTO_122 HISTO_131 ... HISTO_242 HISTO_243 HISTO_311 HISTO_312 HISTO_313 HISTO_321
Name
Nohnerbach 0.000 156,892.000 221.000 0.000 0.000 0.000 ... 0.000 0.000 59,807.000 58,363.000 16,338.000 0.000
Vischelbach 156.000 55,714.000 1,099.000 0.000 0.000 0.000 ... 0.000 0.000 72,895.000 28,304.000 11,792.000 0.000
Liersbach 200.000 56,585.000 619.000 0.000 0.000 0.000 ... 0.000 0.000 96,715.000 79,298.000 13,806.000 0.000
Ansbach 0.000 42,702.000 290.000 0.000 0.000 0.000 ... 0.000 0.000 49,331.000 40,908.000 5,803.000 0.000
Staffelbach 102.000 107,060.000 278.000 0.000 0.000 0.000 ... 0.000 0.000 109,112.000 110,841.000 10,296.000 0.000
Wirftbach 0.000 103,279.000 185.000 0.000 0.000 0.000 ... 0.000 0.000 34,968.000 77,903.000 8,011.000 0.000
Dennbach 0.000 21,716.000 2,378.000 0.000 0.000 0.000 ... 0.000 0.000 117,682.000 47,484.000 1,703.000 0.000
Weidenbach 0.000 78,398.000 582.000 0.000 0.000 0.000 ... 0.000 0.000 167,759.000 100,247.000 6,395.000 0.000
Adenauerbach 0.000 114,172.000 9,950.000 63.000 0.000 0.000 ... 0.000 0.000 195,865.000 191,381.000 26,545.000 0.000
Trierbach 0.000 271,901.000 1,287.000 354.000 0.000 0.000 ... 0.000 0.000 73,168.000 116,186.000 26,252.000 0.000
Upper Ahr 775.000 1,389,227.000 15,999.000 478.000 934.000 3,974.000 ... 1,073.000 1,336.000 370,496.000 368,179.000 123,156.000 442.000
Sahrbach 200.000 162,054.000 930.000 0.000 0.000 0.000 ... 0.000 0.000 147,024.000 92,985.000 18,064.000 0.000
Armuthsbach 100.000 322,082.000 3,799.000 0.000 0.000 0.000 ... 0.000 0.000 125,283.000 188,391.000 12,984.000 0.000

13 rows × 16 columns

Out[8]:
Name
Nohnerbach       314,181.000
Vischelbach      188,254.000
Liersbach        262,759.000
Ansbach          146,923.000
Staffelbach      369,374.000
Wirftbach        248,935.000
Dennbach         190,963.000
Weidenbach       371,858.000
Adenauerbach     567,952.000
Trierbach        552,309.000
Upper Ahr      2,511,866.000
Sahrbach         460,008.000
Armuthsbach      725,751.000
dtype: float64

Percentage of non-forest areas per catchment:

Out[9]:
Name
Nohnerbach     49.937
Vischelbach    29.595
Liersbach      21.535
Ansbach        29.064
Staffelbach    28.984
Wirftbach      41.488
Dennbach       11.372
Weidenbach     21.083
Adenauerbach   20.102
Trierbach      49.230
Upper Ahr      55.307
Sahrbach       35.229
Armuthsbach    44.379
dtype: float64

Percentage of forested areas per catchment:

Out[11]:
Name
Nohnerbach     42.812
Vischelbach    60.021
Liersbach      72.241
Ansbach        65.369
Staffelbach    62.335
Wirftbach      48.560
Dennbach       87.383
Weidenbach     73.792
Adenauerbach   72.857
Trierbach      39.037
Upper Ahr      34.310
Sahrbach       56.102
Armuthsbach    45.010
dtype: float64

Percentage of forest type in forested areas per catchment:

Out[13]:
broadleaf forestarea coniferous forestarea mixed forestarea
Name
Nohnerbach 44.464 43.390 12.146
Vischelbach 64.514 25.050 10.436
Liersbach 50.951 41.776 7.273
Ansbach 51.364 42.594 6.042
Staffelbach 47.389 48.140 4.472
Wirftbach 28.927 64.445 6.627
Dennbach 70.524 28.456 1.021
Weidenbach 61.136 36.533 2.331
Adenauerbach 47.334 46.251 6.415
Trierbach 33.936 53.888 12.176
Upper Ahr 42.989 42.721 14.290
Sahrbach 56.970 36.031 7.000
Armuthsbach 38.353 57.672 3.975
<class 'pandas.core.frame.DataFrame'>
Index: 13 entries, Nohnerbach to Armuthsbach
Data columns (total 3 columns):
 #   Column                 Non-Null Count  Dtype  
---  ------                 --------------  -----  
 0   broadleaf forestarea   13 non-null     float64
 1   coniferous forestarea  13 non-null     float64
 2   mixed forestarea       13 non-null     float64
dtypes: float64(3)
memory usage: 972.0+ bytes

Forest areas anno 2019 by catchment

Out[16]:
HISTO_NODA HISTO_0 HISTO_112 HISTO_121 HISTO_122 HISTO_131 ... HISTO_242 HISTO_243 HISTO_311 HISTO_312 HISTO_313 HISTO_321
Name
Nohnerbach 73.000 183,724.000 9.000 0.000 0.000 0.000 ... 0.000 0.000 55,771.000 51,806.000 15,270.000 0.000
Vischelbach 2,748.000 74,717.000 381.000 0.000 0.000 0.000 ... 0.000 0.000 67,532.000 24,349.000 9,848.000 0.000
Liersbach 248.000 75,271.000 227.000 0.000 0.000 0.000 ... 0.000 0.000 90,927.000 75,512.000 13,229.000 0.000
Ansbach 0.000 53,174.000 2.000 0.000 0.000 0.000 ... 0.000 0.000 46,694.000 38,105.000 5,207.000 0.000
Staffelbach 3,582.000 143,395.000 53.000 0.000 0.000 0.000 ... 0.000 0.000 99,092.000 100,717.000 9,028.000 0.000
Wirftbach 0.000 127,136.000 4.000 0.000 0.000 0.000 ... 0.000 0.000 31,157.000 72,447.000 7,336.000 0.000
Dennbach 0.000 33,658.000 901.000 0.000 0.000 0.000 ... 0.000 0.000 110,275.000 44,438.000 1,691.000 0.000
Weidenbach 1,335.000 109,906.000 207.000 0.000 0.000 0.000 ... 0.000 0.000 154,869.000 92,606.000 5,841.000 0.000
Adenauerbach 1,703.000 165,160.000 3,210.000 0.000 0.000 0.000 ... 0.000 0.000 182,917.000 179,371.000 23,615.000 0.000
Trierbach 4,544.000 325,595.000 242.000 87.000 0.000 0.000 ... 0.000 0.000 68,127.000 104,376.000 23,674.000 0.000
Upper Ahr 17,350.000 1,595,966.000 3,870.000 121.000 219.000 433.000 ... 459.000 487.000 343,033.000 336,606.000 110,601.000 249.000
Sahrbach 200.000 206,678.000 264.000 0.000 0.000 0.000 ... 0.000 0.000 135,213.000 84,199.000 16,552.000 0.000
Armuthsbach 4,800.000 375,911.000 1,623.000 0.000 0.000 0.000 ... 0.000 0.000 116,216.000 177,794.000 12,407.000 0.000

13 rows × 16 columns

Out[17]:
Name
Nohnerbach       314,978.000
Vischelbach      188,254.000
Liersbach        262,759.000
Ansbach          146,923.000
Staffelbach      369,374.000
Wirftbach        248,935.000
Dennbach         190,963.000
Weidenbach       371,858.000
Adenauerbach     568,051.000
Trierbach        552,452.000
Upper Ahr      2,513,591.000
Sahrbach         460,038.000
Armuthsbach      725,757.000
dtype: float64

Percentage of nodata areas per catchment:

Out[18]:
Name
Nohnerbach     0.023
Vischelbach    1.460
Liersbach      0.094
Ansbach        0.000
Staffelbach    0.970
Wirftbach      0.000
Dennbach       0.000
Weidenbach     0.359
Adenauerbach   0.300
Trierbach      0.823
Upper Ahr      0.690
Sahrbach       0.043
Armuthsbach    0.661
dtype: float64

Percentage of non-forest areas per catchment:

Out[19]:
Name
Nohnerbach     58.329
Vischelbach    39.689
Liersbach      28.646
Ansbach        36.192
Staffelbach    38.821
Wirftbach      51.072
Dennbach       17.625
Weidenbach     29.556
Adenauerbach   29.075
Trierbach      58.936
Upper Ahr      63.493
Sahrbach       44.926
Armuthsbach    51.796
dtype: float64

Percentage of forest type in forested areas per catchment:

Out[20]:
Name
Nohnerbach     122,847.000
Vischelbach    101,729.000
Liersbach      179,668.000
Ansbach         90,006.000
Staffelbach    208,837.000
Wirftbach      110,940.000
Dennbach       156,404.000
Weidenbach     253,316.000
Adenauerbach   385,903.000
Trierbach      196,177.000
Upper Ahr      790,240.000
Sahrbach       235,964.000
Armuthsbach    306,417.000
dtype: float64
Out[70]:
broadleaf forestarea coniferous forestarea mixed forestarea
Name
Nohnerbach 45.399 42.171 12.430
Vischelbach 66.384 23.935 9.681
Liersbach 50.608 42.029 7.363
Ansbach 51.879 42.336 5.785
Staffelbach 47.449 48.228 4.323
Wirftbach 28.085 65.303 6.613
Dennbach 70.507 28.412 1.081
Weidenbach 61.137 36.558 2.306
Adenauerbach 47.400 46.481 6.119
Trierbach 34.727 53.205 12.068
Upper Ahr 43.409 42.595 13.996
Sahrbach 57.302 35.683 7.015
Armuthsbach 37.927 58.024 4.049
<class 'pandas.core.frame.DataFrame'>
Index: 13 entries, Nohnerbach to Armuthsbach
Data columns (total 3 columns):
 #   Column                 Non-Null Count  Dtype  
---  ------                 --------------  -----  
 0   broadleaf forestarea   13 non-null     float64
 1   coniferous forestarea  13 non-null     float64
 2   mixed forestarea       13 non-null     float64
dtypes: float64(3)
memory usage: 972.0+ bytes
Out[87]:
HISTO_312 broadleaf forestarea coniferous forestarea mixed forestarea B_C_sum B_Ratio C_Ratio
Name
Nohnerbach 11.235 45.399 42.171 12.430 87.570 51.843 48.157
Vischelbach 13.973 66.384 23.935 9.681 90.319 73.499 26.501
Liersbach 4.774 50.608 42.029 7.363 92.637 54.631 45.369
Ansbach 6.852 51.879 42.336 5.785 94.215 55.064 44.936
Staffelbach 9.134 47.449 48.228 4.323 95.677 49.593 50.407
Wirftbach 7.004 28.085 65.303 6.613 93.387 30.073 69.927
Dennbach 6.415 70.507 28.412 1.081 98.919 71.277 28.723
Weidenbach 7.622 61.137 36.558 2.306 97.694 62.580 37.420
Adenauerbach 6.275 47.400 46.481 6.119 93.881 50.489 49.511
Trierbach 10.165 34.727 53.205 12.068 87.932 39.493 60.507
Upper Ahr 8.575 43.409 42.595 13.996 86.004 50.473 49.527
Sahrbach 9.449 57.302 35.683 7.015 92.985 61.625 38.375
Armuthsbach 5.625 37.927 58.024 4.049 95.951 39.528 60.472

Coniferous forest change (loss) per forest type rate

Name
Nohnerbach      4,036.000
Vischelbach     5,363.000
Liersbach       5,788.000
Ansbach         2,637.000
Staffelbach    10,020.000
Wirftbach       3,811.000
Dennbach        7,407.000
Weidenbach     12,890.000
Adenauerbach   12,948.000
Trierbach       5,041.000
Upper Ahr      27,463.000
Sahrbach       11,811.000
Armuthsbach     9,067.000
Name: HISTO_311, dtype: float64 Name
Nohnerbach      6,557.000
Vischelbach     3,955.000
Liersbach       3,786.000
Ansbach         2,803.000
Staffelbach    10,124.000
Wirftbach       5,456.000
Dennbach        3,046.000
Weidenbach      7,641.000
Adenauerbach   12,010.000
Trierbach      11,810.000
Upper Ahr      31,573.000
Sahrbach        8,786.000
Armuthsbach    10,597.000
Name: HISTO_312, dtype: float64 Name
Nohnerbach      1,068.000
Vischelbach     1,944.000
Liersbach         577.000
Ansbach           596.000
Staffelbach     1,268.000
Wirftbach         675.000
Dennbach           12.000
Weidenbach        554.000
Adenauerbach    2,930.000
Trierbach       2,578.000
Upper Ahr      12,555.000
Sahrbach        1,512.000
Armuthsbach       577.000
Name: HISTO_313, dtype: float64
Out[33]:
HISTO_311 HISTO_312 HISTO_313 HISTO_231 HISTO_211
Name
Nohnerbach 4,036.000 6,557.000 1,068.000 13,000.000 1,235.000
Vischelbach 5,363.000 3,955.000 1,944.000 9,615.000 0.000
Liersbach 5,788.000 3,786.000 577.000 8,191.000 0.000
Ansbach 2,637.000 2,803.000 596.000 4,148.000 0.000
Staffelbach 10,020.000 10,124.000 1,268.000 18,174.000 0.000
Wirftbach 3,811.000 5,456.000 675.000 12,936.000 314.000
Dennbach 7,407.000 3,046.000 12.000 0.000 0.000
Weidenbach 12,890.000 7,641.000 554.000 11,383.000 0.000
Adenauerbach 12,948.000 12,010.000 2,930.000 17,254.000 577.000
Trierbach 5,041.000 11,810.000 2,578.000 32,459.000 2,881.000
Upper Ahr 27,463.000 31,573.000 12,555.000 119,801.000 11,722.000
Sahrbach 11,811.000 8,786.000 1,512.000 21,819.000 0.000
Armuthsbach 9,067.000 10,597.000 577.000 36,093.000 13.000

Percentage change per forest type over 4 years: identical forest area type

Name
Nohnerbach      13,000.000
Vischelbach      9,615.000
Liersbach        8,191.000
Ansbach          4,148.000
Staffelbach     18,174.000
Wirftbach       12,936.000
Dennbach             0.000
Weidenbach      11,383.000
Adenauerbach    17,254.000
Trierbach       32,459.000
Upper Ahr      119,801.000
Sahrbach        21,819.000
Armuthsbach     36,093.000
Name: HISTO_231, dtype: float64 Name
Nohnerbach      20,768.000
Vischelbach     18,294.000
Liersbach       15,536.000
Ansbach          7,889.000
Staffelbach     31,661.000
Wirftbach       23,532.000
Dennbach             0.000
Weidenbach      18,477.000
Adenauerbach    28,989.000
Trierbach       55,615.000
Upper Ahr      217,814.000
Sahrbach        38,751.000
Armuthsbach     73,082.000
Name: HISTO_231, dtype: float64 Name
Nohnerbach      1,235.000
Vischelbach         0.000
Liersbach           0.000
Ansbach             0.000
Staffelbach         0.000
Wirftbach         314.000
Dennbach            0.000
Weidenbach          0.000
Adenauerbach      577.000
Trierbach       2,881.000
Upper Ahr      11,722.000
Sahrbach            0.000
Armuthsbach        13.000
Name: HISTO_211, dtype: float64 Name
Nohnerbach      1,792.000
Vischelbach         0.000
Liersbach           0.000
Ansbach             0.000
Staffelbach         0.000
Wirftbach         475.000
Dennbach            0.000
Weidenbach          0.000
Adenauerbach      780.000
Trierbach       4,403.000
Upper Ahr      17,897.000
Sahrbach            0.000
Armuthsbach        30.000
Name: HISTO_211, dtype: float64
Out[65]:
Name
Nohnerbach     62.596
Vischelbach    52.558
Liersbach      52.723
Ansbach        52.580
Staffelbach    57.402
Wirftbach      54.972
Dennbach        0.000
Weidenbach     61.606
Adenauerbach   59.519
Trierbach      58.364
Upper Ahr      55.002
Sahrbach       56.306
Armuthsbach    49.387
Name: pastures, dtype: float64
Out[66]:
Name
Nohnerbach     68.917
Vischelbach     0.000
Liersbach       0.000
Ansbach         0.000
Staffelbach     0.000
Wirftbach      66.105
Dennbach        0.000
Weidenbach      0.000
Adenauerbach   73.974
Trierbach      65.433
Upper Ahr      65.497
Sahrbach        0.000
Armuthsbach    43.333
Name: arable, dtype: float64
Out[54]:
HISTO_311 HISTO_312 HISTO_313 pastures arable
Name
Nohnerbach 6.748 11.235 6.537 62.596 68.917
Vischelbach 7.357 13.973 16.486 52.558 0.000
Liersbach 5.985 4.774 4.179 52.723 0.000
Ansbach 5.346 6.852 10.271 52.580 0.000
Staffelbach 9.183 9.134 12.315 57.402 0.000
Wirftbach 10.899 7.004 8.426 54.972 66.105
Dennbach 6.294 6.415 0.705 0.000 0.000
Weidenbach 7.684 7.622 8.663 61.606 0.000
Adenauerbach 6.611 6.275 11.038 59.519 73.974
Trierbach 6.890 10.165 9.820 58.364 65.433
Upper Ahr 7.412 8.575 10.194 55.002 65.497
Sahrbach 8.033 9.449 8.370 56.306 0.000
Armuthsbach 7.237 5.625 4.444 49.387 43.333

Map of % changes in broad-leafed and coniferous forest area over 4 years

This comparison has been made based on the respective area's of the same forest type, not the sum of the forested area.

Change over forest types in absolute numbers:

Out[75]:
pandas.core.series.Series
Out[77]:
HISTO_311 HISTO_312 HISTO_313
Name
Nohnerbach -4,036.000 -6,557.000 -1,068.000
Vischelbach -5,363.000 -3,955.000 -1,944.000
Liersbach -5,788.000 -3,786.000 -577.000
Ansbach -2,637.000 -2,803.000 -596.000
Staffelbach -10,020.000 -10,124.000 -1,268.000
Wirftbach -3,811.000 -5,456.000 -675.000
Dennbach -7,407.000 -3,046.000 -12.000
Weidenbach -12,890.000 -7,641.000 -554.000
Adenauerbach -12,948.000 -12,010.000 -2,930.000
Trierbach -5,041.000 -11,810.000 -2,578.000
Upper Ahr -27,463.000 -31,573.000 -12,555.000
Sahrbach -11,811.000 -8,786.000 -1,512.000
Armuthsbach -9,067.000 -10,597.000 -577.000
Out[117]:
<AxesSubplot:ylabel='Name'>

Percentage change per forest type over 4 years: complete forest area

Out[84]:
broadleaf forestarea coniferous forestarea mixed forestarea
Name
Nohnerbach -0.030 -0.049 -0.008
Vischelbach -0.047 -0.035 -0.017
Liersbach -0.030 -0.020 -0.003
Ansbach -0.027 -0.029 -0.006
Staffelbach -0.044 -0.044 -0.006
Wirftbach -0.032 -0.045 -0.006
Dennbach -0.044 -0.018 -0.000
Weidenbach -0.047 -0.028 -0.002
Adenauerbach -0.031 -0.029 -0.007
Trierbach -0.023 -0.055 -0.012
Upper Ahr -0.032 -0.037 -0.015
Sahrbach -0.046 -0.034 -0.006
Armuthsbach -0.028 -0.032 -0.002
Out[173]:
broadleaf forestarea    -0.036
coniferous forestarea   -0.035
mixed forestarea        -0.007
dtype: float64
Spruce and firs cut in 2019 in RLP, m³  3942000  times wood density m³/km² 32450 =  121 km²
Coniferous wood and half of mixed wood standing in 2019 stream upwards of Altenahr: 207.3489 km²

Rheinland-Pfalz total area: 19858 km². In 2018, forest area for Rheinland-Pfalz was 7890 square kilometres.

Change in forest area 1.5396603139079135 Change in total area 0.6117393431732016

Soil map BK50

BK= Boden Kartier

Ground water class: areas by catchment

GW: Grundwasserstufe Ground water class
SN: Staunässegrad stagnant water class
2: weak 3: middle 4: strong

Out[79]:
Name_2 sumarea SW
0 Ansbach 2,071,217.818 2
1 Liersbach 918,882.445 3
2 Upper Ahr 110,296,182.485 0
3 Liersbach 857,548.574 2
4 Weidenbach 22,635.018 2
Out[12]:
sumarea
Name_2 SW
Adenauerbach 0 18,252,422.015
2 120,959.883
3 49,391.683
Ansbach 0 10,339,920.266
2 2,071,217.818
3 2,248,050.248
4 43,890.639
Armuthsbach 0 48,884,384.171
2 6,947,955.210
3 16,896,570.220
Dennbach 0 14,564,576.950
2 8,996.032
3 393,928.029
Liersbach 0 24,515,584.368
2 857,548.574
3 918,882.445
Nohnerbach 0 52,862.229
Sahrbach 0 34,779,582.150
2 1,796,950.576
3 9,417,474.268
4 57,986.903
Upper Ahr 0 110,296,182.485
2 8,173,173.065
3 17,033,091.317
4 1,505,419.857
Vischelbach 0 15,319,573.129
2 806,544.088
3 2,573,854.587
4 136,448.992
Weidenbach 0 4,161,881.963
2 22,635.018
Wirftbach 0 303,781.362
3 146,641.935
Out[17]:
<AxesSubplot:ylabel='Name_2-SW'>
Out[49]:
SW 0 2 3 4
Name_2
Adenauerbach 18,252,422.015 120,959.883 49,391.683 0.000
Ansbach 10,339,920.266 2,071,217.818 2,248,050.248 43,890.639
Armuthsbach 48,884,384.171 6,947,955.210 16,896,570.220 0.000
Dennbach 14,564,576.950 8,996.032 393,928.029 0.000
Liersbach 24,515,584.368 857,548.574 918,882.445 0.000
Nohnerbach 52,862.229 0.000 0.000 0.000
Sahrbach 34,779,582.150 1,796,950.576 9,417,474.268 57,986.903
Upper Ahr 110,296,182.485 8,173,173.065 17,033,091.317 1,505,419.857
Vischelbach 15,319,573.129 806,544.088 2,573,854.587 136,448.992
Weidenbach 4,161,881.963 22,635.018 0.000 0.000
Wirftbach 303,781.362 0.000 146,641.935 0.000
Out[161]:
<seaborn.axisgrid.FacetGrid at 0x1e5b1a47400>
<class 'pandas.core.frame.DataFrame'>
Index: 11 entries, Adenauerbach to Wirftbach
Data columns (total 4 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   0       11 non-null     float64
 1   2       11 non-null     float64
 2   3       11 non-null     float64
 3   4       11 non-null     float64
dtypes: float64(4)
memory usage: 740.0+ bytes
Out[133]:
<AxesSubplot:xlabel='SW'>
Out[143]:
<seaborn.axisgrid.FacetGrid at 0x1e5adfce2e0>
<class 'pandas.core.frame.DataFrame'>
Index: 11 entries, Adenauerbach to Wirftbach
Data columns (total 4 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   0       11 non-null     float64
 1   2       11 non-null     float64
 2   3       11 non-null     float64
 3   4       11 non-null     float64
dtypes: float64(4)
memory usage: 440.0+ bytes
Out[53]:
Int64Index([0, 2, 3, 4], dtype='int64', name='SW')
Out[119]:
110296182.48509586
Out[56]:
1505419.8569495983
Out[37]:
137007866.72440955

calculate some percentages

Ansbach_SW0 70.32486383685537 Sahrbach_SW0 75.52242412673543 Armuthsbach_SW0 67.21451543668583 UpperAhr_SW0 80.50353977626403
Ansbach_SW2 14.086966558733108 Sahrbach_SW2 3.9020038516316613 Armuthsbach_SW2 9.553223399387582 UpperAhr_SW2 5.965477209895343
Ansbach_SW3 15.289656353087782 Sahrbach_SW3 20.449655859150234 Armuthsbach_SW3 23.23226116392658 UpperAhr_SW3 12.432199496557104
Ansbach_SW4 0.2985132513237354 Sahrbach_SW4 0.12591616248268264 Armuthsbach_SW4 0.0 UpperAhr_SW4 1.0987835172835299
Out[85]:
Armuthsbach_SW Sahrbach_SW UpperAhr_SW Ansbach_SW Vischelbach_SW
SW0 67.215 75.522 80.504 70.325 81.330
SW2 9.553 3.902 5.965 14.087 4.282
SW3 23.232 20.450 12.432 15.290 13.664
SW4 0.000 0.126 1.099 0.299 0.724
Out[138]:
<AxesSubplot:ylabel='Count'>
Out[86]:
<AxesSubplot:>

Groundwater classes of BK50

Rather little data here...

Mid Ahr basins streamcodes.tif

[[[0 0 0 ... 0 0 0]
  [0 0 0 ... 0 0 0]
  [0 0 0 ... 0 0 0]
  ...
  [0 0 0 ... 0 0 0]
  [0 0 0 ... 0 0 0]
  [0 0 0 ... 0 0 0]]]
False
1
(1,)
Out[8]:
<AxesSubplot:>
c:\program files\python38\lib\site-packages\geopandas\_compat.py:111: UserWarning: The Shapely GEOS version (3.10.1-CAPI-1.16.0) is incompatible with the GEOS version PyGEOS was compiled with (3.10.0-CAPI-1.16.0). Conversions between both will be slow.
  warnings.warn(
Out[13]:
Name area GW Name_2 count geometry
0 None NaN NaN None NaN POLYGON ((6.57550 50.42198, 6.57271 50.39538, ...
1 None NaN NaN None NaN POLYGON ((6.92448 50.27242, 6.84534 50.27173, ...
2 None NaN NaN None NaN POLYGON ((6.59683 50.43010, 6.61911 50.44731, ...
3 L5504_B311 50,460.697 0.000 Upper Ahr 1.000 None
4 L5504_B321 50,317.200 0.000 Upper Ahr 1.000 None
Out[14]:
Name area GW Name_2 count geometry
3 L5504_B311 50,460.697 0.000 Upper Ahr 1.000 None
4 L5504_B321 50,317.200 0.000 Upper Ahr 1.000 None
5 L5704_R-B311 50,277.545 0.000 Upper Ahr 1.000 None
6 L5504_B342 50,136.089 0.000 Upper Ahr 1.000 None
7 L5506_B341 40,239.423 0.000 Weidenbach 1.000 None
... ... ... ... ... ... ...
2989 L5506_B221 30,440.395 0.000 Upper Ahr 1.000 None
2990 L5504_B321 274,996.609 0.000 Upper Ahr 1.000 None
2991 L5706_B211 218,504.068 0.000 Upper Ahr 1.000 None
2992 L5706_>Q541 10,713.327 0.000 Upper Ahr 1.000 None
2993 L5704_B341 2,790,201.321 0.000 Upper Ahr 1.000 None

2991 rows × 6 columns

Out[94]:
area count
Name_2 GW
Adenauerbach 0.000 16,606,706.055 144.000
2.000 854,666.097 5.000
3.000 945,927.775 1.000
4.000 15,473.653 1.000
Ansbach 0.000 13,447,763.891 124.000
1.000 264,662.230 1.000
2.000 990,652.850 10.000
Armuthsbach 0.000 67,942,617.088 489.000
1.000 152,009.252 1.000
2.000 3,208,061.233 8.000
3.000 1,030,035.797 2.000
4.000 396,186.232 1.000
Dennbach 0.000 13,807,632.937 131.000
1.000 40,848.856 1.000
2.000 782,978.307 4.000
3.000 336,040.910 1.000
Liersbach 0.000 24,705,927.501 184.000
3.000 908,372.610 3.000
4.000 677,715.275 1.000
Nohnerbach 0.000 52,862.229 2.000
Sahrbach 0.000 42,281,632.771 292.000
1.000 128,785.516 2.000
2.000 2,393,685.743 17.000
3.000 1,218,940.302 1.000
4.000 28,949.565 1.000
Upper Ahr 0.000 126,211,432.198 1,274.000
1.000 1,061,670.440 13.000
2.000 6,469,229.078 48.000
3.000 2,383,919.883 21.000
4.000 881,615.125 11.000
Vischelbach 0.000 17,589,541.672 145.000
1.000 477,595.529 2.000
2.000 769,283.595 3.000
Weidenbach 0.000 3,911,598.363 38.000
2.000 272,918.618 4.000
Wirftbach 0.000 450,423.296 5.000
Out[15]:
GW 0.000 1.000 2.000 3.000 4.000
Name_2
Adenauerbach 115,324.348 0.000 170,933.219 945,927.775 15,473.653
Ansbach 108,449.709 264,662.230 99,065.285 0.000 0.000
Armuthsbach 138,941.957 152,009.252 401,007.654 515,017.898 396,186.232
Dennbach 105,401.778 40,848.856 195,744.577 336,040.910 0.000
Liersbach 134,271.345 0.000 0.000 302,790.870 677,715.275
Nohnerbach 26,431.115 0.000 0.000 0.000 0.000
Sahrbach 144,800.112 64,392.758 140,805.044 1,218,940.302 28,949.565
Upper Ahr 99,067.058 81,666.957 134,775.606 113,519.994 80,146.830
Vischelbach 121,307.184 238,797.764 256,427.865 0.000 0.000
Weidenbach 102,936.799 0.000 68,229.654 0.000 0.000
Wirftbach 90,084.659 0.000 0.000 0.000 0.000
Ansbach_GW4 0.0 Sahrbach_GW4 1.811739582677695 Armuthsbach_GW4 24.712785493469102 UpperAhr_GW4 15.740482563622106
Ansbach_GW3 0.0 Sahrbach_GW3 76.28447480781499 Armuthsbach_GW3 32.12511145326169 UpperAhr_GW3 22.294824430861812
Ansbach_GW2 20.98053017771149 Sahrbach_GW2 8.81194820699329 Armuthsbach_GW2 25.013529862820228 UpperAhr_GW2 26.469332414066276
Ansbach_GW1 56.051460508704686 Sahrbach_GW1 4.029867349125133 Armuthsbach_GW1 9.481833888516896 UpperAhr_GW1 16.03902885843182
Ansbach_GW0 22.96800931358382 Sahrbach_GW0 9.06197005338889 Armuthsbach_GW0 8.666739301932077 UpperAhr_GW0 19.45633173301797
Out[22]:
Armuthsbach_GW Sahrbach_GW UpperAhr_GW Ansbach_GW Vischelbach_GW
GW0 8.667 9.062 19.456 22.968 19.676
GW1 9.482 4.030 16.039 56.051 38.732
GW2 25.014 8.812 26.469 20.981 41.592
GW3 32.125 76.284 22.295 0.000 0.000
GW4 24.713 1.812 15.740 0.000 0.000
Out[109]:
<AxesSubplot:>
Bezeichnung sehr flach bis flach mittel tief sehr tief äußerst tief
Mittlerer Schwankungsbereich in dm unter GOF 0 bis 4 4 bis 8 8 bis 13 13 bis 20 über 20
Out[24]:
<AxesSubplot:ylabel='Count'>

The cumulative plots starts with the most shallow soils. The Upper Ahr area's have the the most time lag, but their increase it the most sharp.
Armuthsbach might be a good precursor for the reaction of the Upper Ahr area's in terms of rainfall runoff.

Soil types classified into 5 groups

This classification into only 5 groups is rather coarse. A higher class number means soils with lower infiltration rates.

  1. Sand

  2. lehmiger Sand
    sandiger Schluff

  3. stark sandiger Lehm
    lehmiger Schluff
    sandiger Lehm

  4. schluffiger Lehm
    Lehm

  5. schluffig-toniger Lehm
    toniger Lehm
    Ton

I selected only the area properties of the NRW-provided db. which are located within the RLP-catchments, for creating the following shapefile.
sBDA_txt : BDA KA5-Text der 'synthetischen' Bodenart

c:\program files\python38\lib\site-packages\geopandas\_compat.py:111: UserWarning: The Shapely GEOS version (3.10.1-CAPI-1.16.0) is incompatible with the GEOS version PyGEOS was compiled with (3.10.0-CAPI-1.16.0). Conversions between both will be slow.
  warnings.warn(
Out[2]:
Index(['Name', 'AREAhaBK50', 'Tiefe', 'nFK', 'FK', 'LK', 'KAK', 'Erod', 'kf',
       'kap', 'gfa', 'BW1', 'BW2', 'LK4', 'analog', 'LKnFK', 'BASuW', 'BWZ_M',
       'den', 'feu', 'ofakla', 'eta', 'was', 'NEI', 'sic', 'fil', 'bfe',
       'bfe_2', 'bfe_cc', 'gbk_1m', 'gbk_2m', 'gbknass', 'gbkstau', 'lambda',
       'Cv', 'alpha', 'WEL', 'ERD', 'VER', 'KLA', 'KOR', 'FeSa', 'ToHu',
       'Bod_Wasser', 'KERN', 'TYP', 'HPTTYP', 'ART', 'DIC', 'GW', 'SW',
       'TYP_TEXT', 'ART_TEXT', 'DIC_TEXT', 'EIN_TEXT', 'KERNFOLGE', 'FAR_NAME',
       'SCH_NAME', 'BWZ_M_1', 'Blatt', 'KJahr', 'swb', 'swb_2', 'bfe_swb',
       'ZpH_A', 'ZpH_G', 'GW_Stufe', 'SW_Stufe', 'sBDA', 'BBODSCHV',
       'BDA_LUFA', 'LUFA_Txt', 'LUFA_grp', 'sBDA_txt', 'WLF_1', 'WLF_2',
       'Name_2', 'geometry'],
      dtype='object')
Out[8]:
<AxesSubplot:xlabel='soil_transmissivity', ylabel='Count'>
Out[10]:
<AxesSubplot:xlabel='ln_soil_transmissivity', ylabel='Count'>

I saved the logar. of the soil transmiss. to a file so I can rasterize it later, in order to calculate a SWI-raster from the TWI- raster.

CRSError: The EPSG code is unknown. PROJ: proj_create_from_database: C:\Program Files\PostgreSQL\14\share\contrib\postgis-3.1\proj\proj.db lacks DATABASE.LAYOUT.VERSION.MAJOR / DATABASE.LAYOUT.VERSION.MINOR metadata. It comes from another PROJ installation. https://github.com/rasterio/rasterio/issues/2103

Nutzbare Feldkapazität nFK

Out[9]:
<AxesSubplot:>

gesättigte Wasserleitfähigkeit im 2-Meter-Raum $k_f$

Out[8]:
<AxesSubplot:>

Gesamtfilterfähigkeit im 2-Meter-Raum

Out[7]:
<AxesSubplot:>

Durchwurzelungstiefe

Out[5]:
<AxesSubplot:>

LUFA soil group

Out[6]:
<AxesSubplot:>
Out[19]:
AREAhaBK50 Name_2 LUFA_Txt LUFA_grp sBDA_txt BDA_LUFA
0 5.046 Upper Ahr schluffiger Lehm 4.000 schluffiger Lehm uL
1 5.031 Upper Ahr schluffiger Lehm 4.000 schluffiger Lehm uL
2 5.027 Upper Ahr schluffiger Lehm 4.000 schluffiger Lehm uL
3 5.013 Upper Ahr schluffiger Lehm 4.000 schluffiger Lehm uL
4 4.023 Weidenbach sandiger Lehm 4.000 schwach toniger Lehm sL
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2991 entries, 0 to 2990
Data columns (total 6 columns):
 #   Column      Non-Null Count  Dtype  
---  ------      --------------  -----  
 0   AREAhaBK50  2991 non-null   float64
 1   Name_2      2991 non-null   object 
 2   LUFA_Txt    2991 non-null   object 
 3   LUFA_grp    2987 non-null   float64
 4   sBDA_txt    2991 non-null   object 
 5   BDA_LUFA    2991 non-null   object 
dtypes: float64(2), object(4)
memory usage: 140.3+ KB
Out[20]:
AREAhaBK50 LUFA_grp
Name_2
Adenauerbach 4,962.248 605.000
Ansbach 2,889.501 540.000
Armuthsbach 11,476.507 2,028.000
Dennbach 2,546.257 548.000
Liersbach 5,938.932 752.000
Nohnerbach 53.611 8.000
Sahrbach 7,446.063 1,260.000
Upper Ahr 16,089.695 5,384.000
Vischelbach 3,996.803 604.000
Weidenbach 1,625.849 168.000
Wirftbach 1,658.236 20.000
Out[21]:
sBDA_txt Niedermoortorf Sand lehmiger Sand sandig-lehmiger Schluff sandiger Lehm schluffig-lehmiger Sand ... schwach sandiger Lehm schwach toniger Lehm stark lehmiger Sand stark schluffiger Sand stark schluffiger Ton toniger Lehm
Name_2
Adenauerbach 0.000 0.000 0.000 0.000 0.000 0.000 ... 0.000 17.286 0.000 0.000 0.000 2.446
Ansbach 0.000 0.000 0.000 0.000 0.000 0.000 ... 0.000 3.692 0.000 0.000 0.000 0.000
Armuthsbach 0.000 0.000 0.000 0.000 0.000 0.000 ... 0.000 5.779 0.000 0.000 0.000 1.488
Dennbach 0.000 0.000 0.000 0.000 0.000 0.000 ... 0.000 4.363 0.000 0.000 0.000 0.000
Liersbach 0.000 0.000 0.000 0.000 0.000 0.000 ... 0.000 12.973 0.000 0.000 0.000 0.000
Nohnerbach 0.000 0.000 0.000 0.000 0.000 0.000 ... 0.000 0.000 0.000 0.000 0.000 0.000
Sahrbach 0.000 0.000 0.000 0.000 0.000 0.000 ... 0.000 8.183 0.000 0.000 0.000 1.754
Upper Ahr 2.421 3.075 10.887 12.148 6.289 15.182 ... 3.580 3.849 8.598 2.478 7.010 36.127
Vischelbach 0.000 0.000 0.000 0.000 0.000 0.000 ... 0.000 3.073 0.000 0.000 0.000 1.305
Weidenbach 0.000 0.000 0.000 0.000 0.000 0.000 ... 0.000 3.479 0.000 0.000 0.000 0.000
Wirftbach 0.000 0.000 0.000 0.000 0.000 0.000 ... 0.000 5.875 0.000 0.000 0.000 0.000

11 rows × 15 columns

Grouping into the 5 classes.

Out[22]:
LUFA_grp 1.000 2.000 3.000 4.000 5.000
Name_2
Adenauerbach 0.000 0.000 0.000 33.065 2.446
Ansbach 0.000 0.000 0.000 21.404 0.000
Armuthsbach 0.000 5.296 0.000 22.823 25.124
Dennbach 0.000 0.000 0.000 18.586 0.000
Liersbach 0.000 0.000 0.000 31.590 0.000
Nohnerbach 0.000 0.000 0.000 26.806 0.000
Sahrbach 0.000 0.000 0.000 24.367 1.754
Upper Ahr 3.075 12.824 12.156 11.526 15.509
Vischelbach 0.000 0.000 0.000 27.340 1.305
Weidenbach 0.000 0.000 0.000 38.711 0.000
Wirftbach 0.000 0.000 0.000 331.647 0.000
Ansbach_BDA5 0.0 Sahrbach_BDA5 6.715712740175213 Armuthsbach_BDA5 47.1878659542039 UpperAhr_BDA5 28.151187986150326
Ansbach_BDA4 100.0 Sahrbach_BDA4 93.28428725982478 Armuthsbach_BDA4 42.86593787475581 UpperAhr_BDA4 20.922390307842008
Ansbach_BDA3 0.0 Sahrbach_BDA3 0.0 Armuthsbach_BDA3 0.0 UpperAhr_BDA3 22.065382947323954
Out[15]:
Armuthsbach_BDA Sahrbach_BDA UpperAhr_BDA Ansbach_BDA Vischelbach_BDA
BDA5 47.188 6.716 28.151 0.000 4.555
BDA3 0.000 0.000 22.065 0.000 0.000
BDA4 42.866 93.284 20.922 100.000 95.445

Presence of group 5 neutralizes the group 3:

Out[29]:
weight
BDA5 100
BDA3 1
BDA4 10
<class 'pandas.core.frame.DataFrame'>
Index: 3 entries, BDA5 to BDA4
Data columns (total 1 columns):
 #   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   weight  3 non-null      int64
dtypes: int64(1)
memory usage: 48.0+ bytes
<class 'pandas.core.frame.DataFrame'>
Index: 3 entries, BDA5 to BDA4
Data columns (total 5 columns):
 #   Column           Non-Null Count  Dtype  
---  ------           --------------  -----  
 0   Armuthsbach_BDA  3 non-null      float64
 1   Sahrbach_BDA     3 non-null      float64
 2   UpperAhr_BDA     3 non-null      float64
 3   Ansbach_BDA      3 non-null      float64
 4   Vischelbach_BDA  3 non-null      float64
dtypes: float64(5)
memory usage: 252.0+ bytes
Out[40]:
Armuthsbach_BDA Sahrbach_BDA UpperAhr_BDA Ansbach_BDA Vischelbach_BDA weight
BDA5 47.188 6.716 28.151 0.000 4.555 100
BDA3 0.000 0.000 22.065 0.000 0.000 1
BDA4 42.866 93.284 20.922 100.000 95.445 10
Out[50]:
BDA5 BDA3 BDA4
Armuthsbach_BDA 47.188 0.000 42.866
Sahrbach_BDA 6.716 0.000 93.284
UpperAhr_BDA 28.151 22.065 20.922
Ansbach_BDA 0.000 0.000 100.000
Vischelbach_BDA 4.555 0.000 95.445
weight 100.000 1.000 10.000

Applying the weights on the soil classes

Out[52]:
BDA5 BDA3 BDA4
Armuthsbach_BDA 2,226.695 0.000 1,837.489
Sahrbach_BDA 45.101 0.000 8,701.958
UpperAhr_BDA 792.489 486.881 437.746
Ansbach_BDA 0.000 0.000 10,000.000
Vischelbach_BDA 20.748 0.000 9,109.749

Imperviousness burden: class 5 and 4 combined

Out[67]:
Armuthsbach_BDA    4,064.183
Sahrbach_BDA       8,747.059
UpperAhr_BDA       1,717.117
Ansbach_BDA       10,000.000
Vischelbach_BDA    9,130.497
dtype: float64
Out[68]:
Name_2
Adenauerbach    4,962.248
Ansbach         2,889.501
Armuthsbach    11,476.507
Dennbach        2,546.257
Liersbach       5,938.932
Nohnerbach         53.611
Sahrbach        7,446.063
Upper Ahr      16,089.695
Vischelbach     3,996.803
Weidenbach      1,625.849
Wirftbach       1,658.236
Name: AREAhaBK50, dtype: float64
Out[69]:
10.67215331355449
Out[70]:
35.413067502637396
Out[71]:
117.47226041750545
Out[72]:
228.4449813374256

Grouping into specific soil type classes.

we try to link them to their infiltration rate... but mind that the German and US soil type classes do not overlap nicely.

Out[23]:
LUFA_Txt (Torfe) Sand lehmiger Sand lehmiger Schluff sandiger Lehm schluffig-toniger Lehm schluffiger Lehm stark sandiger Lehm toniger Lehm
Name_2
Adenauerbach 0.000000000 0.000000000 0.000000000 0.000000000 17.286043716 0.000000000 40.720651966 0.000000000 2.445591664
Ansbach 0.000000000 0.000000000 0.000000000 0.000000000 3.691644003 0.000000000 31.822574363 0.000000000 0.000000000
Armuthsbach 0.000000000 0.000000000 5.295573353 0.000000000 5.778953408 28.206743342 37.213847073 0.000000000 1.488390899
Dennbach 0.000000000 0.000000000 0.000000000 0.000000000 4.362787584 0.000000000 23.848335819 0.000000000 0.000000000
Liersbach 0.000000000 0.000000000 0.000000000 0.000000000 12.973478263 0.000000000 42.384552598 0.000000000 0.000000000
Nohnerbach 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 26.805527728 0.000000000 0.000000000
Sahrbach 0.000000000 0.000000000 0.000000000 0.000000000 8.182910967 0.000000000 34.300591468 0.000000000 1.754248835
Upper Ahr 2.421374883 3.075442181 12.824388669 12.148139182 3.999620555 15.230146124 12.596433870 12.189064507 36.126716294
Vischelbach 0.000000000 0.000000000 0.000000000 0.000000000 3.073477266 0.000000000 43.795968618 0.000000000 1.304749763
Weidenbach 0.000000000 0.000000000 0.000000000 0.000000000 3.479182621 0.000000000 56.326430619 0.000000000 0.000000000
Wirftbach 0.000000000 0.000000000 0.000000000 0.000000000 5.875256241 0.000000000 413.090161902 0.000000000 0.000000000

The area for the Wirftbach might be an error.

Out[9]:
LUFA_Txt
(Torfe)                    2.421374883
Sand                       3.075442181
lehmiger Sand             18.119962022
lehmiger Schluff          12.148139182
sandiger Lehm             68.703354625
schluffig-toniger Lehm    43.436889466
schluffiger Lehm         762.905076024
stark sandiger Lehm       12.189064507
toniger Lehm              43.119697453
dtype: float64
Out[10]:
Name_2
Adenauerbach    60.452287345
Ansbach         35.514218366
Armuthsbach     77.983508074
Dennbach        28.211123403
Liersbach       55.358030861
Nohnerbach      26.805527728
Sahrbach        44.237751270
Upper Ahr      110.611326265
Vischelbach     48.174195647
Weidenbach      59.805613240
Wirftbach      418.965418143
dtype: float64
Out[24]:
AREAhaBK50
Name_2 LUFA_Txt
Adenauerbach sandiger Lehm 847.016142061
schluffiger Lehm 4,112.785848530
toniger Lehm 2.445591664
Ansbach sandiger Lehm 184.582200156
schluffiger Lehm 2,704.918820858
Armuthsbach lehmiger Sand 5.295573353
sandiger Lehm 1,254.032889494
schluffig-toniger Lehm 648.755096857
schluffiger Lehm 9,563.958697779
toniger Lehm 4.465172696
Dennbach sandiger Lehm 161.423140597
schluffiger Lehm 2,384.833581936
Liersbach sandiger Lehm 895.170000138
schluffiger Lehm 5,043.761759159
Nohnerbach schluffiger Lehm 53.611055455
Sahrbach sandiger Lehm 949.217672194
schluffiger Lehm 6,482.811787423
toniger Lehm 14.033990678
Upper Ahr (Torfe) 9.685499532
Sand 6.150884362
lehmiger Sand 512.975546771
lehmiger Schluff 558.814402388
sandiger Lehm 591.943842182
schluffig-toniger Lehm 1,127.030813197
schluffiger Lehm 13,112.887658357
stark sandiger Lehm 134.079709574
toniger Lehm 36.126716294
Vischelbach sandiger Lehm 181.335158723
schluffiger Lehm 3,810.249269790
toniger Lehm 5.218999051
Weidenbach sandiger Lehm 48.708556699
schluffiger Lehm 1,577.140057336
Wirftbach sandiger Lehm 5.875256241
schluffiger Lehm 1,652.360647608
Out[25]:
<AxesSubplot:xlabel='Name_2'>
Out[26]:
AREAhaBK50
Name_2
Adenauerbach 4,962.247582254
Ansbach 2,889.501021014
Armuthsbach 11,476.507430179
Dennbach 2,546.256722533
Liersbach 5,938.931759297
Nohnerbach 53.611055455
Sahrbach 7,446.063450294
Upper Ahr 16,089.695072656
Vischelbach 3,996.803427563
Weidenbach 1,625.848614035
Wirftbach 1,658.235903849

Calculate the total area per basin

Calculate the surface area per soiltype

Out[29]:
Name_2 LUFA_Txt AREAhaBK50
0 Adenauerbach sandiger Lehm 847.016142061
1 Adenauerbach schluffiger Lehm 4,112.785848530
2 Adenauerbach toniger Lehm 2.445591664
3 Ansbach sandiger Lehm 184.582200156
4 Ansbach schluffiger Lehm 2,704.918820858
5 Armuthsbach lehmiger Sand 5.295573353
6 Armuthsbach sandiger Lehm 1,254.032889494
7 Armuthsbach schluffig-toniger Lehm 648.755096857
8 Armuthsbach schluffiger Lehm 9,563.958697779
9 Armuthsbach toniger Lehm 4.465172696
10 Dennbach sandiger Lehm 161.423140597
11 Dennbach schluffiger Lehm 2,384.833581936
12 Liersbach sandiger Lehm 895.170000138
13 Liersbach schluffiger Lehm 5,043.761759159
14 Nohnerbach schluffiger Lehm 53.611055455
15 Sahrbach sandiger Lehm 949.217672194
16 Sahrbach schluffiger Lehm 6,482.811787423
17 Sahrbach toniger Lehm 14.033990678
18 Upper Ahr (Torfe) 9.685499532
19 Upper Ahr Sand 6.150884362
20 Upper Ahr lehmiger Sand 512.975546771
21 Upper Ahr lehmiger Schluff 558.814402388
22 Upper Ahr sandiger Lehm 591.943842182
23 Upper Ahr schluffig-toniger Lehm 1,127.030813197
24 Upper Ahr schluffiger Lehm 13,112.887658357
25 Upper Ahr stark sandiger Lehm 134.079709574
26 Upper Ahr toniger Lehm 36.126716294
27 Vischelbach sandiger Lehm 181.335158723
28 Vischelbach schluffiger Lehm 3,810.249269790
29 Vischelbach toniger Lehm 5.218999051
30 Weidenbach sandiger Lehm 48.708556699
31 Weidenbach schluffiger Lehm 1,577.140057336
32 Wirftbach sandiger Lehm 5.875256241
33 Wirftbach schluffiger Lehm 1,652.360647608

We apply a dict to get the percentages

Out[33]:
LUFA_Txt PCT
Name_2
Adenauerbach sandiger Lehm 17.069203582
Adenauerbach schluffiger Lehm 82.881512467
Adenauerbach toniger Lehm 0.049283951
Ansbach sandiger Lehm 0.000000000
Ansbach schluffiger Lehm 0.000000000
Armuthsbach lehmiger Sand 0.046142726
Armuthsbach sandiger Lehm 10.926955758
Armuthsbach schluffig-toniger Lehm 5.652896587
Armuthsbach schluffiger Lehm 83.335097859
Armuthsbach toniger Lehm 0.038907069
Dennbach sandiger Lehm 0.000000000
Dennbach schluffiger Lehm 0.000000000
Liersbach sandiger Lehm 15.072912713
Liersbach schluffiger Lehm 84.927087287
Nohnerbach schluffiger Lehm 0.000000000
Sahrbach sandiger Lehm 12.747912753
Sahrbach schluffiger Lehm 87.063611943
Sahrbach toniger Lehm 0.188475303
Upper Ahr (Torfe) 0.060196912
Upper Ahr Sand 0.038228719
Upper Ahr lehmiger Sand 3.188224167
Upper Ahr lehmiger Schluff 3.473119906
Upper Ahr sandiger Lehm 3.679024615
Upper Ahr schluffig-toniger Lehm 7.004674782
Upper Ahr schluffiger Lehm 81.498671038
Upper Ahr stark sandiger Lehm 0.833326604
Upper Ahr toniger Lehm 0.224533256
Vischelbach sandiger Lehm 0.000000000
Vischelbach schluffiger Lehm 0.000000000
Vischelbach toniger Lehm 0.000000000
Weidenbach sandiger Lehm 0.000000000
Weidenbach schluffiger Lehm 0.000000000
Wirftbach sandiger Lehm 0.000000000
Wirftbach schluffiger Lehm 0.000000000
Out[34]:
LUFA_Txt PCT
Name_2
Adenauerbach sandiger Lehm 17.069203582
Adenauerbach schluffiger Lehm 82.881512467
Adenauerbach toniger Lehm 0.049283951

A more specific soil type classification per basin

Out[22]:
['sandiger Lehm',
 'schluffiger Lehm',
 'toniger Lehm',
 'lehmiger Sand',
 'schluffig-toniger Lehm',
 '(Torfe)',
 'Sand',
 'lehmiger Schluff',
 'stark sandiger Lehm']
Out[37]:
sandiger Lehm
schluffiger Lehm
toniger Lehm
lehmiger Sand
schluffig-toniger Lehm
(Torfe)
Sand
lehmiger Schluff
stark sandiger Lehm
Adenauerbach                           PCT
LUFA_Txt                     
sandiger Lehm    17.069203582
schluffiger Lehm 82.881512467
toniger Lehm      0.049283951
Armuthsbach                                 PCT
LUFA_Txt                           
lehmiger Sand           0.046142726
sandiger Lehm          10.926955758
schluffig-toniger Lehm  5.652896587
schluffiger Lehm       83.335097859
toniger Lehm            0.038907069
Upper Ahr                                 PCT
LUFA_Txt                           
(Torfe)                 0.060196912
Sand                    0.038228719
lehmiger Sand           3.188224167
lehmiger Schluff        3.473119906
sandiger Lehm           3.679024615
schluffig-toniger Lehm  7.004674782
schluffiger Lehm       81.498671038
stark sandiger Lehm     0.833326604
toniger Lehm            0.224533256
Liersbach                           PCT
LUFA_Txt                     
sandiger Lehm    15.072912713
schluffiger Lehm 84.927087287
Sahrbach                           PCT
LUFA_Txt                     
sandiger Lehm    12.747912753
schluffiger Lehm 87.063611943
toniger Lehm      0.188475303
Out[40]:
Adenauerbach Armuthsbach Upper Ahr Liersbach Sahrbach
sandiger Lehm 17.069203582 10.926955758 3.679024615 15.072912713 12.747912753
schluffiger Lehm 82.881512467 83.335097859 81.498671038 84.927087287 87.063611943
toniger Lehm 0.049283951 0.038907069 0.224533256 0.000000000 0.188475303
lehmiger Sand 0.000000000 0.046142726 3.188224167 0.000000000 0.000000000
schluffig-toniger Lehm 0.000000000 5.652896587 7.004674782 0.000000000 0.000000000
(Torfe) 0.000000000 0.000000000 0.060196912 0.000000000 0.000000000
Sand 0.000000000 0.000000000 0.038228719 0.000000000 0.000000000
lehmiger Schluff 0.000000000 0.000000000 3.473119906 0.000000000 0.000000000
stark sandiger Lehm 0.000000000 0.000000000 0.833326604 0.000000000 0.000000000
Out[29]:
sandiger Lehm schluffiger Lehm toniger Lehm lehmiger Sand schluffig-toniger Lehm (Torfe) Sand lehmiger Schluff stark sandiger Lehm
Adenauerbach 17.069203582 82.881512467 0.049283951 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
Armuthsbach 10.926955758 83.335097859 0.038907069 0.046142726 5.652896587 0.000000000 0.000000000 0.000000000 0.000000000
Upper Ahr 3.679024615 81.498671038 0.224533256 3.188224167 7.004674782 0.060196912 0.038228719 3.473119906 0.833326604
Liersbach 15.072912713 84.927087287 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
Sahrbach 12.747912753 87.063611943 0.188475303 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000 0.000000000
Out[43]:
Adenauerbach Armuthsbach Upper Ahr Liersbach Sahrbach Inf_rate
sandiger Lehm 17.069203582 10.926955758 3.679024615 15.072912713 12.747912753 16.002000000
schluffiger Lehm 82.881512467 83.335097859 81.498671038 84.927087287 87.063611943 14.986000000
toniger Lehm 0.049283951 0.038907069 0.224533256 0.000000000 0.188475303 6.350000000
lehmiger Sand 0.000000000 0.046142726 3.188224167 0.000000000 0.000000000 22.352000000
schluffig-toniger Lehm 0.000000000 5.652896587 7.004674782 0.000000000 0.000000000 7.000000000
Sand 0.000000000 0.000000000 0.038228719 0.000000000 0.000000000 26.924000000
lehmiger Schluff 0.000000000 0.000000000 3.473119906 0.000000000 0.000000000 12.000000000
stark sandiger Lehm 0.000000000 0.000000000 0.833326604 0.000000000 0.000000000 19.050000000

designing a hazard value for area and infiltration inhibition:

Out[44]:
dict_keys(['Sand', 'lehmiger Sand', 'lehmiger Schluff', 'sandiger Lehm', 'schluffig-toniger Lehm', 'schluffiger Lehm', 'stark sandiger Lehm', 'toniger Lehm'])
Out[46]:
Sand
lehmiger Sand
lehmiger Schluff
sandiger Lehm
schluffig-toniger Lehm
schluffiger Lehm
stark sandiger Lehm
toniger Lehm
Adenauerbach    0.000000000
Armuthsbach     0.000000000
Upper Ahr       0.038228719
Liersbach       0.000000000
Sahrbach        0.000000000
Inf_rate       26.924000000
Name: Sand, dtype: float64
Adenauerbach    0.000000000
Armuthsbach     0.046142726
Upper Ahr       3.188224167
Liersbach       0.000000000
Sahrbach        0.000000000
Inf_rate       22.352000000
Name: lehmiger Sand, dtype: float64
Adenauerbach    0.000000000
Armuthsbach     0.000000000
Upper Ahr       3.473119906
Liersbach       0.000000000
Sahrbach        0.000000000
Inf_rate       12.000000000
Name: lehmiger Schluff, dtype: float64
Adenauerbach   17.069203582
Armuthsbach    10.926955758
Upper Ahr       3.679024615
Liersbach      15.072912713
Sahrbach       12.747912753
Inf_rate       16.002000000
Name: sandiger Lehm, dtype: float64
Adenauerbach   0.000000000
Armuthsbach    5.652896587
Upper Ahr      7.004674782
Liersbach      0.000000000
Sahrbach       0.000000000
Inf_rate       7.000000000
Name: schluffig-toniger Lehm, dtype: float64
Adenauerbach   82.881512467
Armuthsbach    83.335097859
Upper Ahr      81.498671038
Liersbach      84.927087287
Sahrbach       87.063611943
Inf_rate       14.986000000
Name: schluffiger Lehm, dtype: float64
Adenauerbach    0.000000000
Armuthsbach     0.000000000
Upper Ahr       0.833326604
Liersbach       0.000000000
Sahrbach        0.000000000
Inf_rate       19.050000000
Name: stark sandiger Lehm, dtype: float64
Adenauerbach   0.049283951
Armuthsbach    0.038907069
Upper Ahr      0.224533256
Liersbach      0.000000000
Sahrbach       0.188475303
Inf_rate       6.350000000
Name: toniger Lehm, dtype: float64

Infiltration rates

The infiltration rates decay exponentially over time to a minimum value, as long as there is a surplus of rain water.

ha = 0.01 km² => hm² l / m² => hm² 10000 l / hm² => 10 m³

Out[73]:
Name_2 LUFA_Txt AREAhaBK50 Inf_rate Inf_vol1
0 Adenauerbach sandiger Lehm 847.016142061 16.002000000 13,553.952305254
1 Adenauerbach schluffiger Lehm 4,112.785848530 14.986000000 61,634.208726074
2 Adenauerbach toniger Lehm 2.445591664 6.350000000 15.529507063
3 Ansbach sandiger Lehm 184.582200156 16.002000000 2,953.684366894
4 Ansbach schluffiger Lehm 2,704.918820858 14.986000000 40,535.913449378
5 Armuthsbach lehmiger Sand 5.295573353 22.352000000 118.366655587
6 Armuthsbach sandiger Lehm 1,254.032889494 16.002000000 20,067.034297678
7 Armuthsbach schluffig-toniger Lehm 648.755096857 7.000000000 4,541.285677998
8 Armuthsbach schluffiger Lehm 9,563.958697779 14.986000000 143,325.485044921
9 Armuthsbach toniger Lehm 4.465172696 6.350000000 28.353846617
10 Dennbach sandiger Lehm 161.423140597 16.002000000 2,583.093095840
11 Dennbach schluffiger Lehm 2,384.833581936 14.986000000 35,739.116058891
12 Liersbach sandiger Lehm 895.170000138 16.002000000 14,324.510342215
13 Liersbach schluffiger Lehm 5,043.761759159 14.986000000 75,585.813722750
14 Nohnerbach schluffiger Lehm 53.611055455 14.986000000 803.415277054
15 Sahrbach sandiger Lehm 949.217672194 16.002000000 15,189.381190445
16 Sahrbach schluffiger Lehm 6,482.811787423 14.986000000 97,151.417446317
17 Sahrbach toniger Lehm 14.033990678 6.350000000 89.115840802
18 Upper Ahr (Torfe) 9.685499532 NaN NaN
19 Upper Ahr Sand 6.150884362 26.924000000 165.606410564
20 Upper Ahr lehmiger Sand 512.975546771 22.352000000 11,466.029421415
21 Upper Ahr lehmiger Schluff 558.814402388 12.000000000 6,705.772828661
22 Upper Ahr sandiger Lehm 591.943842182 16.002000000 9,472.285362597
23 Upper Ahr schluffig-toniger Lehm 1,127.030813197 7.000000000 7,889.215692377
24 Upper Ahr schluffiger Lehm 13,112.887658357 14.986000000 196,509.734448137
25 Upper Ahr stark sandiger Lehm 134.079709574 19.050000000 2,554.218467393
26 Upper Ahr toniger Lehm 36.126716294 6.350000000 229.404648464
27 Vischelbach sandiger Lehm 181.335158723 16.002000000 2,901.725209878
28 Vischelbach schluffiger Lehm 3,810.249269790 14.986000000 57,100.395557073
29 Vischelbach toniger Lehm 5.218999051 6.350000000 33.140643972
30 Weidenbach sandiger Lehm 48.708556699 16.002000000 779.434324297
31 Weidenbach schluffiger Lehm 1,577.140057336 14.986000000 23,635.020899234
32 Wirftbach sandiger Lehm 5.875256241 16.002000000 94.015850375
33 Wirftbach schluffiger Lehm 1,652.360647608 14.986000000 24,762.276665054

For those area's that have been classified: the volume of water that can be infiltrated by the basin, for the 1st hour:

Out[50]:
Inf_vol1
Name_2
Adenauerbach 75,203.690538391
Ansbach 43,489.597816272
Armuthsbach 168,080.525522802
Dennbach 38,322.209154730
Liersbach 89,910.324064964
Nohnerbach 803.415277054
Sahrbach 112,429.914477564
Upper Ahr 234,992.267279607
Vischelbach 60,035.261410923
Weidenbach 24,414.455223531
Wirftbach 24,856.292515429
Out[51]:
AREAhaBK50
Name_2
Adenauerbach 4,962.247582254
Ansbach 2,889.501021014
Armuthsbach 11,476.507430179
Dennbach 2,546.256722533
Liersbach 5,938.931759297
Nohnerbach 53.611055455
Sahrbach 7,446.063450294
Upper Ahr 16,089.695072656
Vischelbach 3,996.803427563
Weidenbach 1,625.848614035
Wirftbach 1,658.235903849
Out[52]:
Name_2
Adenauerbach   15.155166946
Ansbach        15.050902388
Armuthsbach    14.645616408
Dennbach       15.050410595
Liersbach      15.139140793
Nohnerbach     14.986000000
Sahrbach       15.099242066
Upper Ahr      14.605141130
Vischelbach    15.020819137
Weidenbach     15.016438193
Wirftbach      14.989599765
dtype: float64
Out[53]:
<AxesSubplot:ylabel='Name_2'>

Horton’s Equation for infiltration decay

Horton's model is empirical and is perhaps the best known of the infiltration equations. Many hydrologists have a "feel" for the best values of its three parameters despite the lack of published information.

The model gives infiltration capacity as a function of time as:

Where:

Fp = infiltration rate into soil, in./hr (mm/hr)
Fc = minimum or asymtopic value of Fp, in./hr (mm/hr)
Fo = maximum or initial value of Fp, in./hr (mm/hr)
t = time from beginning of storm, sec
k = decay coefficient, 1/sec

This equation describes the familiar exponential decay of infiltration capacity evident during heavy storms. However, the program uses the integrated form to avoid an unwanted reduction in infiltration capacity during periods of light rainfall.

Soils close to saturation:
Choose value close to saturated hydraulic conductivity

Values of Horton Equation parameters suggested by Akan (1993):

Values suggested by Akan (1993):

Maximum (Initial) Infiltration Capacity, F0

Soil Type (in/hr) (mm/hr)
Dry sandy soils with little or no vegetation 5.0 127
Dry loam soils with little or no vegetation 3.0 76.2
Dry clay soils with little or no vegetation 1.0 25.4
Dry sandy soils with dense vegetation 10.0 254
Dry loam soils with dense vegetation 6.0 152
Dry clay soils with dense vegetation 2.0 51
Moist sandy soils with little or no vegetation 1.7 43
Moist loam soils with little or no vegetation 1.0 25
Moist clay soils with little or no vegetation 0.3 7.6
Moist sandy soils with dense vegetation 3.3 84
Moist loam soils with dense vegetation 2.0 5.1
Moist clay soils with dense or no vegetation 0.7 18

Minimum (Asymptotic) Infiltration Capacity, $Fc$

Soil Type (in/hr) (mm/hr)
Clay loam, silty clay loam, sandy clay, silty clay, clay 0.00 - 0.05 0.00 - 1.3
Sandy clay loam 0.05 - 0.15 1.3 - 3.8
Silt loam, loam 0.15 - 0.30 3.8 – 7.6
Sand, loamy sand, sandy loam 0.30 - 0.45 7.6 – 11.4

The minimum (asymptotic) infiltration rate is often close to the saturated hydraulic conductivity of the soil.

I found this value of Moist loam soils with dense vegetation 5.1 surprisingly very low. So I searched for recent studies about these parameters.
Dynamic study of infiltration rate for soils with varying degrees of degradation by water erosion International Soil and Water Conservation Research Volume 7, Issue 2, June 2019, Pages 167-175. https://doi.org/10.1016/j.iswcr.2018.12.005

Empirical parameters for infiltration decay in moist loamy soils

For F0 I chose a Minimum (Asymptotic) Infiltration value between those of moist loamy soils $5$ and moist clay soils $18$: 12 mm/hour. HR, high rainfall intensity (120 mm/h); LR, low rainfall intensity (60 mm/h)
$$Fp_{LR}=F_c + (F_0 - F_c )\cdot e^{-k_{LR}\cdot(t-T_r)}$$

Conclusion: moist loamy soils are quickly saturated due to sharp declining infiltration rate.

SoilDic= {"Sand" : "Sand",
"lehmiger Sand" :"Loamy Sand",
"lehmiger Schluff":"Silt Loam" ,
"sandiger Lehm": "Fine Sandy Loam",
"schluffig-toniger Lehm":"Silty Clay Loam" ,
"schluffiger Lehm":"Very Fine Sandy Loam",
"stark sandiger Lehm":"Sandy Loam",
"toniger Lehm":"Clay Loam"}

TWI Ahr: topographic wetness index

This index is unfiltered. Some authors write that applying a 3x3 filter (on a very high resolution DEM) produces better results.

Out[10]:
Index(['TWI', 'geometry'], dtype='object')
Out[13]:
TWI geometry
0 17 POLYGON ((354286.511 5604581.929, 354309.582 5...
1 16 POLYGON ((354309.582 5604581.929, 354332.654 5...
2 18 POLYGON ((354286.511 5604558.858, 354309.582 5...
3 17 POLYGON ((354032.730 5604535.787, 354055.801 5...
4 18 POLYGON ((354055.801 5604535.787, 354078.872 5...
Out[16]:
<AxesSubplot:>
Out[11]:
Name AREAhaBK50 Tiefe nFK FK LK ... sBDA_txt WLF_1 WLF_2 Name_2 geometry TWI

0 rows × 79 columns

10.4 dm 16.0 cm/d 79.3 mm
6.5 cm cm/d
16.64 cm/d /cm

TWI in relation with soil depth

TWI $unitless$ divided by soil depth in dm. The standard TI takes the form: $TI=ln(A_s/tan(\beta))$

Out[33]:
<AxesSubplot:>

The soil-topographic wetness index (STI), which extends the purely topography-based TWI by accounting for spatial variation in hydrologically relevant soil properties: $STI=ln(A_s/(T \cdot tan(\beta))$


Soil compatibility map NRW for European spruce

This map is for NRW areal, but it holds area's of RLP also.
The general incompatibility of many of current trees is in line with the big outfall of damaged of death spruce of the last years.

  • red: high risks for drought or insect damage
  • yellow: medium risks for drought or insect damage
[[[ 94 193 250 ...   0   0   0]
  [250 250 250 ...   0   0   0]
  [250 250 250 ...   0   0   0]
  ...
  [  0   0   0 ...   0   0   0]
  [  0   0   0 ...   0   0   0]
  [  0   0   0 ...   0   0   0]]

 [[204 229 250 ...   0   0   0]
  [250 250 250 ...   0   0   0]
  [250 250 250 ...   0   0   0]
  ...
  [  0   0   0 ...   0   0   0]
  [  0   0   0 ...   0   0   0]
  [  0   0   0 ...   0   0   0]]

 [[ 51  35   0 ...   0   0   0]
  [  0   0   0 ...   0   0   0]
  [  0   0   0 ...   0   0   0]
  ...
  [  0   0   0 ...   0   0   0]
  [  0   0   0 ...   0   0   0]
  [  0   0   0 ...   0   0   0]]

 [[255 255 255 ...   0   0   0]
  [255 255 255 ...   0   0   0]
  [255 255 255 ...   0   0   0]
  ...
  [  0   0   0 ...   0   0   0]
  [  0   0   0 ...   0   0   0]
  [  0   0   0 ...   0   0   0]]]
False
4
(1, 2, 3, 4)

State of the Forest report of NRW 2021

In February 2022 I found this report Waldzustandsbericht_NRW_2021_Langfassung.pdf that is in line with my findings:

  • Since 2018 the destruction of needleleaf trees has multiplied
  • The European spruce beetle is the main culprit, but
  • The placement of most tree species is not according to contemporary knowledge and guidelines of Forestrenewal, and local soiltype compatibility for a specific kind of tree species is poor in elevations above 300 m.