Autosaving every 400 seconds
Out[10]:
'%.5f'

1  Tributaries of the Ahr: drainage area's and outflows

Let's have a look at the properties of the drainage area's and their outflows, by using GIS software and latitude and longitude coordinates.
There had a lot of preparation work to be done before the data of interest could be merged. A big part is setting up the geographical framework for the AOI area of interest, which was handled with python modules and QGIS.

Author: Van Oproy Kurt

1.0.1  Distance to the measurestation of Altenahr

  1. 'Latitude' & 'Longitude': source area coords
  2. 'Lati' & 'Long': outlet point coords
  3. "Streamcode" is not following all official Streamcode numbers
Out[5]:
Bach Distance Lati Long Latitude Longitude Streamcode
Stream
Sahr Sahrbach 2.17 50.51 6.97 50.54 6.85 27188
Liers Liersbach 10.00 50.46 6.94 50.53 6.83 271872
Armuths Armuthsbach 18.80 50.45 6.87 50.47 6.71 271856
Ans Ansbach 22.00 50.43 6.85 50.44 6.75 271854
Nohner Nohnerbach 35.50 50.36 6.83 50.28 6.88 271812
Trier Trierbach 34.00 50.36 6.83 50.30 6.91 27184
Wirft Wirftbach 22.00 50.37 6.84 50.34 6.93 271899
Adenauer Adenauerbach 11.20 50.44 6.93 50.35 6.97 27186
Denn Dennbach 6.30 50.48 6.99 50.42 6.97 2718748
Staffel Staffelbach 10.20 50.48 7.03 50.46 7.11 271874
Vischel Vischelbach 1.00 50.51 6.98 50.57 6.94 271892
Weiden Weidenbach 8.30 50.48 7.02 50.39 7.03 2718741
Out[5]:
array([6.85, 6.83, 6.71, 6.75, 6.88, 6.91, 6.93, 6.97, 6.97, 7.11, 6.94,
       6.65])
Out[6]:
numpy.ndarray
Out[72]:
((12, 2), (12, 2), (12,), (12,), (12, 2))
[[-1.   -1.  ]
 [-0.82 -0.82]
 [-0.64 -0.64]
 ...
 [ 0.64  0.64]
 [ 0.82  0.82]
 [ 1.    1.  ]] [50.54 50.53 50.47 50.44 50.28 50.3  50.34 50.35 50.42 50.46 50.57 50.44]

Correcting some issues with some shapefiles.

c:\program files\python38\lib\site-packages\geopandas\_compat.py:111: UserWarning: The Shapely GEOS version (3.8.1-CAPI-1.13.3) 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[3]:
geometry
0 POLYGON ((6.57550 50.42198, 6.57271 50.39538, ...
1 POLYGON ((6.92448 50.27242, 6.84534 50.27173, ...
2 POLYGON ((6.59683 50.43010, 6.61911 50.44731, ...
Out[5]:
Out[7]:
Out[8]:
c:\program files\python38\lib\site-packages\geopandas\_compat.py:111: UserWarning: The Shapely GEOS version (3.8.1-CAPI-1.13.3) 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]:
geometry
0 POLYGON ((6.69293 50.45849, 6.67960 50.45335, ...
Out[4]:
Metric Value geometry
0 Landscape Proportion 0.61 None

1.0.2  Outflow points of the side streams

This map shows the direction from source to outlet points of the main tributaries.

Out[116]:
array([[ 6.65, 50.44,  6.81, 50.38],
       [ 6.85, 50.54,  6.97, 50.51],
       [ 6.83, 50.53,  6.94, 50.46],
       [ 7.11, 50.46,  7.06, 50.48]])
Out[17]:
('EPSG', '26915')
Out[10]:
'3.1.0'

cc = CRS('esri:7019') cc CRSError: Invalid projection: esri:7019: (Internal Proj Error: proj_create: crs not found)

Out[39]:
Name Area East North geometry
0 Watershed-Vischel 32374176 None None POLYGON ((6.95083 50.52250, 6.95056 50.52250, ...
Out[40]:
<Geographic 2D CRS: EPSG:4258>
Name: ETRS89
Axis Info [ellipsoidal]:
- Lat[north]: Geodetic latitude (degree)
- Lon[east]: Geodetic longitude (degree)
Area of Use:
- name: 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; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Moldova; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain; Sweden; Switzerland; United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.
- bounds: (-16.1, 32.88, 40.18, 84.17)
Datum: European Terrestrial Reference System 1989
- Ellipsoid: GRS 1980
- Prime Meridian: Greenwich
Out[7]:
Name Area id geometry
0 Watershed-Nohner 4.89e+07 1.46e+10 MULTIPOLYGON (((6.82428 50.35194, 6.82428 50.3...
1 Watershed-Nohner 4.89e+07 NaN POLYGON ((6.79358 50.36074, 6.79351 50.36074, ...
2 None NaN 1.46e+10 POLYGON ((6.82404 50.35554, 6.82760 50.35932, ...
c:\program files\python38\lib\site-packages\geopandas\_compat.py:111: UserWarning: The Shapely GEOS version (3.8.1-CAPI-1.13.3) 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[3]:
Name Area id fid area_ geometry
0 Watershed-Nohner 48889366.0 1.455515e+10 NaN NaN MULTIPOLYGON (((6.82428 50.35194, 6.82428 50.3...
1 Watershed-Nohner 48889366.0 NaN NaN NaN POLYGON ((6.79358 50.36074, 6.79351 50.36074, ...
2 None NaN 1.455515e+10 NaN NaN POLYGON ((6.82404 50.35554, 6.82760 50.35932, ...
3 None NaN NaN 1.0 6.537983e+07 POLYGON ((6.92729 50.44280, 6.93719 50.44457, ...
Out[48]:
Name Area id fid area_ Name_2 Area_2 East North Name_3 Area_3 East_2 North_2 id_2 Area_4 Name_4 Area_5 East_3 North_3 index fid_2 Name_5 Area_6 East_4 North_4 debit id_3 id_4 Name_6 Area_7 East_5 North_5 geometry
0 None NaN NaN NaN NaN None NaN None None None NaN None None None NaN None NaN None None None NaN None NaN None None None None 1.0 Watershed-Vischel 3.24e+07 None None MULTIPOLYGON (((6.91833 50.56539, 6.91874 50.5...
1 None NaN NaN NaN NaN None NaN None None None NaN None None None NaN None NaN None None None NaN None NaN None None None None 1.0 None NaN None None POLYGON ((6.82178 50.53457, 6.84860 50.53019, ...
2 None NaN NaN NaN NaN None NaN None None None NaN None None None NaN None NaN None None None 1.0 None NaN None None None None NaN None NaN None None MULTIPOLYGON (((6.83112 50.51722, 6.83117 50.5...
3 None NaN NaN NaN NaN None NaN None None None NaN None None None NaN None NaN None None None 1.0 Watershed-Ansbach 2.62e+07 None None None None NaN None NaN None None MULTIPOLYGON (((6.85222 50.44038, 6.85194 50.4...
4 None NaN NaN NaN NaN None NaN None None None NaN None None None NaN None NaN None None UpperAhr_delin 1.0 None NaN None None None None NaN None NaN None None MULTIPOLYGON (((6.70207 50.45750, 6.70222 50.4...
5 None NaN NaN NaN NaN None NaN None None None NaN None None None 3.79e+07 Watershed-Kessel_Staf 5.81e+07 None None None NaN None NaN None None None None NaN None NaN None None MULTIPOLYGON (((7.02898 50.49743, 7.02932 50.4...
6 None NaN NaN 1.0 6.54e+07 None NaN None None None NaN None None None 3.79e+07 None NaN None None None NaN None NaN None None None None NaN None NaN None None MULTIPOLYGON (((6.97369 50.41669, 6.97581 50.4...
7 None NaN NaN NaN NaN None NaN None None Watershed-Denn 3.04e+07 None None None 3.79e+07 None NaN None None None NaN None NaN None None None None NaN None NaN None None MULTIPOLYGON (((7.02028 50.50086, 7.02028 50.4...
8 None NaN NaN 1.0 6.54e+07 None NaN None None Watershed-Denn 3.04e+07 None None None NaN None NaN None None None NaN None NaN None None None None NaN None NaN None None MULTIPOLYGON (((6.95313 50.43242, 6.95255 50.4...
9 None NaN 1.46e+10 NaN NaN Watershed-Wirft 3.94e+07 None None None NaN None None None NaN None NaN None None None NaN None NaN None None None None NaN None NaN None None MULTIPOLYGON (((6.85995 50.35750, 6.86005 50.3...
10 None NaN NaN 1.0 6.54e+07 Watershed-Wirft 3.94e+07 None None None NaN None None None NaN None NaN None None None NaN None NaN None None None None NaN None NaN None None MULTIPOLYGON (((6.92917 50.34381, 6.92887 50.3...
11 Watershed-Nohner 4.89e+07 1.46e+10 NaN NaN None NaN None None None NaN None None None NaN None NaN None None None NaN None NaN None None None None NaN None NaN None None MULTIPOLYGON (((6.82428 50.35194, 6.82428 50.3...
12 Watershed-Nohner 4.89e+07 NaN NaN NaN None NaN None None None NaN None None None NaN None NaN None None None NaN None NaN None None None None NaN None NaN None None POLYGON ((6.79358 50.36074, 6.79351 50.36074, ...
13 None NaN 1.46e+10 NaN NaN None NaN None None None NaN None None None NaN None NaN None None None NaN None NaN None None None None NaN None NaN None None POLYGON ((6.82404 50.35554, 6.82760 50.35932, ...
14 None NaN NaN 1.0 6.54e+07 None NaN None None None NaN None None None NaN None NaN None None None NaN None NaN None None None None NaN None NaN None None POLYGON ((6.92729 50.44280, 6.93719 50.44457, ...
15 None NaN NaN NaN NaN Watershed-Wirft 3.94e+07 None None None NaN None None None NaN None NaN None None None NaN None NaN None None None None NaN None NaN None None POLYGON ((6.91722 50.33639, 6.91694 50.33639, ...
16 None NaN NaN NaN NaN None NaN None None Watershed-Denn 3.04e+07 None None None NaN None NaN None None None NaN None NaN None None None None NaN None NaN None None POLYGON ((6.96406 50.45953, 6.96406 50.45960, ...
17 None NaN NaN NaN NaN None NaN None None None NaN None None None 3.79e+07 None NaN None None None NaN None NaN None None None None NaN None NaN None None POLYGON ((7.00915 50.38663, 7.00559 50.38695, ...
18 None NaN NaN NaN NaN None NaN None None None NaN None None None NaN Watershed-Kessel_Staf 5.81e+07 None None None NaN None NaN None None None None NaN None NaN None None POLYGON ((7.03850 50.45608, 7.03847 50.45608, ...
19 None NaN NaN NaN NaN None NaN None None None NaN None None None NaN None NaN None None UpperAhr_delin NaN None NaN None None None None NaN None NaN None None POLYGON ((6.84334 50.27222, 6.84306 50.27222, ...
20 None NaN NaN NaN NaN None NaN None None None NaN None None None NaN None NaN None None None 1.0 None NaN None None None None NaN None NaN None None POLYGON ((6.69835 50.46917, 6.70552 50.47906, ...
21 None NaN NaN NaN NaN None NaN None None None NaN None None None NaN None NaN None None None NaN Watershed-Ansbach 2.62e+07 None None None None NaN None NaN None None POLYGON ((6.75266 50.44472, 6.75306 50.44472, ...
22 None NaN NaN NaN NaN None NaN None None None NaN None None None NaN None NaN None None None NaN None NaN None None None None NaN None NaN None None POLYGON ((6.86426 50.52006, 6.87475 50.51327, ...
23 None NaN NaN NaN NaN None NaN None None None NaN None None None NaN None NaN None None None NaN None NaN None None None None 1.0 None NaN None None POLYGON ((6.97541 50.50887, 6.92453 50.49237, ...
24 None NaN NaN NaN NaN None NaN None None None NaN None None None NaN None NaN None None None NaN None NaN None None None None NaN Watershed-Vischel 3.24e+07 None None POLYGON ((6.95083 50.52250, 6.95056 50.52250, ...
Out[26]:
geopandas.geodataframe.GeoDataFrame
Out[16]:
<Geographic 2D CRS: EPSG:4258>
Name: ETRS89
Axis Info [ellipsoidal]:
- Lat[north]: Geodetic latitude (degree)
- Lon[east]: Geodetic longitude (degree)
Area of Use:
- name: 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; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Moldova; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain; Sweden; Switzerland; United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.
- bounds: (-16.1, 32.88, 40.18, 84.17)
Datum: European Terrestrial Reference System 1989
- Ellipsoid: GRS 1980
- Prime Meridian: Greenwich

1.0.3  Writing to Shapefile

The trick is the use a GeoSeries, not a GeoDF.

Out[108]:
Name Area geometry
0 Watershed-1 residual 28772994 POLYGON ((6.940 50.456, 6.945 50.458, 6.939 50...
1 Watershed-1-1 850805542 POLYGON ((6.930 50.453, 6.930 50.453, 6.940 50...
2 Watershed-1 103493493 POLYGON ((6.985 50.517, 6.986 50.517, 6.988 50...
3 Watershed-2 residual 702957502 POLYGON ((352601.717 5603769.296, 352626.249 5...
4 Watershed-2-1 46040474 POLYGON ((350595.148 5597153.059, 350595.148 5...
5 Watershed-2 748925746 POLYGON ((345806.323 5597979.719, 345830.855 5...
6 Watershed-MiddleAhrvalley 59021317 POLYGON ((343698.322 5585916.143, 345362.956 5...

Sahr_ws_delin.plot();

Out[109]:
Name                                            Watershed-2-1
Area                                                 46040474
geometry    POLYGON ((350595.1477082021 5597153.058980878,...
Name: 4, dtype: object
Out[111]:
geopandas.geodataframe.GeoDataFrame
Out[118]:
<Projected CRS: EPSG:32632>
Name: WGS 84 / UTM zone 32N
Axis Info [cartesian]:
- E[east]: Easting (metre)
- N[north]: Northing (metre)
Area of Use:
- name: Between 6°E and 12°E, northern hemisphere between equator and 84°N, onshore and offshore. Algeria. Austria. Cameroon. Denmark. Equatorial Guinea. France. Gabon. Germany. Italy. Libya. Liechtenstein. Monaco. Netherlands. Niger. Nigeria. Norway. Sao Tome and Principe. Svalbard. Sweden. Switzerland. Tunisia. Vatican City State.
- bounds: (6.0, 0.0, 12.0, 84.0)
Coordinate Operation:
- name: UTM zone 32N
- method: Transverse Mercator
Datum: World Geodetic System 1984
- Ellipsoid: WGS 84
- Prime Meridian: Greenwich
Out[114]:
Name Area geometry
0 Watershed-1 residual 28772994 POLYGON ((6.940 50.456, 6.945 50.458, 6.939 50...
1 Watershed-1-1 850805542 POLYGON ((6.930 50.453, 6.930 50.453, 6.940 50...
2 Watershed-1 103493493 POLYGON ((6.985 50.517, 6.986 50.517, 6.988 50...
3 Watershed-2 residual 702957502 POLYGON ((352601.717 5603769.296, 352626.249 5...
4 Watershed-2-1 46040474 POLYGON ((350595.148 5597153.059, 350595.148 5...
5 Watershed-2 748925746 POLYGON ((345806.323 5597979.719, 345830.855 5...
6 Watershed-MiddleAhrvalley 59021317 POLYGON ((343698.322 5585916.143, 345362.956 5...

Finally the Sahrbach shapefile is OK again, and the shape of the Upper and Mid Ahr is corrected as well.

Out[66]:
pandas.core.series.Series
Out[58]:
Out[61]:
Out[62]:
Out[51]:
Name                                       Watershed-Sahrbach
Area                                                 45600000
geometry    POLYGON ((6.9613972476 50.515177182, 6.9614691...
Name: 1, dtype: object

1.0.3.1  Pluviometer locations

Out[14]:
{'geometry': [<shapely.geometry.point.Point at 0x29f97e00af0>,
  <shapely.geometry.point.Point at 0x29f957def10>,
  <shapely.geometry.point.Point at 0x29f95be3520>,
  <shapely.geometry.point.Point at 0x29f95ec5190>,
  <shapely.geometry.point.Point at 0x29f95ec51f0>,
  <shapely.geometry.point.Point at 0x29f95ec5220>]}
Out[16]:
dict
Out[21]:
0    POINT (6.98111 50.48833)
1    POINT (6.85500 50.53354)
Name: geometry, dtype: geometry
Out[47]:
0    POINT (6.86763 50.35999)
1    POINT (6.79389 50.26361)
2    POINT (7.03000 50.56000)
3    POINT (6.73948 50.41555)
4    POINT (7.01427 50.40470)
5    POINT (7.11314 50.55130)
Name: geometry, dtype: geometry
Out[48]:
geopandas.geoseries.GeoSeries
Out[64]:
UpperAhr_delin    POLYGON ((6.84334 50.27222, 6.84306 50.27222, ...
dtype: geometry

1.0.4  Building a Pluviometer GeoDataFrame

Out[7]:
Latitude Longitude Height
Pluviometer
Barweiler 50.36 6.87 488.17
Freilingen 50.42 6.74 530.00
Neuenahr 50.55 7.11 130.00
Dreis-Brück 50.26 6.79 525.00
Kaltenborn 50.40 7.01 541.00
Esch 50.56 7.03 274.00
Ahrbrück 50.49 6.98 192.00
Scheuerheck 50.53 6.86 435.00
Out[8]:
Index(['Barweiler', 'Freilingen', 'Neuenahr', 'Dreis-Brück', 'Kaltenborn',
       'Esch', 'Ahrbrück', 'Scheuerheck'],
      dtype='object', name='Pluviometer')
Out[10]:
0      Barweiler
1     Freilingen
2       Neuenahr
3    Dreis-Brück
4     Kaltenborn
5           Esch
6       Ahrbrück
7    Scheuerheck
Name: Pluviometer, dtype: object
Out[11]:
pandas.core.series.Series
Out[49]:
Pluviometer
Barweiler      None
Dreis-Brück    None
Esch           None
Freilingen     None
Kaltenborn     None
Neuenahr       None
Name: geometry, dtype: geometry
Out[50]:
geometry
0 POINT (6.86763 50.35999)
1 POINT (6.79389 50.26361)
2 POINT (7.03000 50.56000)
3 POINT (6.73948 50.41555)
4 POINT (7.01427 50.40470)
5 POINT (7.11314 50.55130)
Out[24]:
geometry
Ahrbrück POINT (6.98111 50.48833)
Scheuerheck POINT (6.85500 50.53354)
Out[25]:
geometry Pluviometer Latitude Longitude Height
6 POINT (6.98111 50.48833) Ahrbrück 50.49 6.98 192.0
7 POINT (6.85500 50.53354) Scheuerheck 50.53 6.86 435.0
Out[14]:
Pluviometer Latitude Longitude Height
0 Barweiler 50.36 6.87 488.17
1 Freilingen 50.42 6.74 530.00
2 Neuenahr 50.55 7.11 130.00
3 Dreis-Brück 50.26 6.79 525.00
4 Kaltenborn 50.40 7.01 541.00
5 Esch 50.56 7.03 274.00
6 Ahrbrück 50.49 6.98 192.00
7 Scheuerheck 50.53 6.86 435.00

add index, rainfall and elevation info...

Out[50]:
geometry
0 POINT (6.86763 50.35999)
1 POINT (6.79389 50.26361)
2 POINT (7.03000 50.56000)
3 POINT (6.73948 50.41555)
4 POINT (7.01427 50.40470)
5 POINT (7.11314 50.55130)
C:\Users\Kurt\AppData\Local\Temp/ipykernel_8916/2434726898.py:1: UserWarning: Column names longer than 10 characters will be truncated when saved to ESRI Shapefile.
  pluvio_geometriedfX.to_file(r"C:\Users\Kurt\Documents\Lekan\pluvio_geometrie.shp")
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]:
Pluviomete Latitude Longitude Height SUM1407 geometry
0 Barweiler 50.36 6.87 488.17 80.00 POINT (6.86763 50.35999)
1 Dreis-Brück 50.26 6.79 525.00 102.60 POINT (6.79389 50.26361)
2 Esch 50.56 7.03 274.00 89.10 POINT (7.03000 50.56000)
3 Freilingen 50.42 6.74 530.00 115.45 POINT (6.73948 50.41555)
4 Kaltenborn 50.40 7.01 541.00 79.23 POINT (7.01427 50.40470)
5 Neuenahr 50.55 7.11 130.00 67.20 POINT (7.11314 50.55130)

concatenate the original df with additions df

Out[30]:
Pluviometer Latitude Longitude Height SUM1407 geometry
0 Barweiler 50.36 6.87 488.17 80.00 POINT (6.86763 50.35999)
1 Dreis-Brück 50.26 6.79 525.00 102.60 POINT (6.79389 50.26361)
2 Esch 50.56 7.03 274.00 89.10 POINT (7.03000 50.56000)
3 Freilingen 50.42 6.74 530.00 115.45 POINT (6.73948 50.41555)
4 Kaltenborn 50.40 7.01 541.00 79.23 POINT (7.01427 50.40470)
5 Neuenahr 50.55 7.11 130.00 67.20 POINT (7.11314 50.55130)
6 Ahrbrück 50.49 6.98 192.00 NaN POINT (6.98111 50.48833)
7 Scheuerheck 50.53 6.86 435.00 NaN POINT (6.85500 50.53354)
C:\Users\Kurt\AppData\Local\Temp/ipykernel_18920/3817314484.py:1: UserWarning: Column names longer than 10 characters will be truncated when saved to ESRI Shapefile.
  pluvio_geometriedf8.to_file(r"C:\Users\Kurt\Documents\Lekan\pluvio_geometrie8.shp")

1.0.4.1  Map of rainfall gauges with IDW interpolation.

1.0.5  Building an outlet points GeoDataFrame

[6.944930767512368, 50.459138381369975] [6.97, 50.51]
Out[17]:
{'geometry': [<shapely.geometry.point.Point at 0x26b74bbdaf0>,
  <shapely.geometry.point.Point at 0x26b732e7070>,
  <shapely.geometry.point.Point at 0x26b74cf69a0>,
  <shapely.geometry.point.Point at 0x26b74bb1820>,
  <shapely.geometry.point.Point at 0x26b74820a00>,
  <shapely.geometry.point.Point at 0x26b73271b80>,
  <shapely.geometry.point.Point at 0x26b73271f70>,
  <shapely.geometry.point.Point at 0x26b74cdee50>,
  <shapely.geometry.point.Point at 0x26b74a4c670>,
  <shapely.geometry.point.Point at 0x26b74bbdd00>,
  <shapely.geometry.point.Point at 0x26b74bbdb50>,
  <shapely.geometry.point.Point at 0x26b74bbdc70>]}
Out[18]:
geometry
0 POINT (6.97000 50.51000)
1 POINT (6.94493 50.45914)
2 POINT (7.02543 50.48225)
3 POINT (6.86918 50.45092)
4 POINT (6.85482 50.43257)
5 POINT (6.82811 50.36239)
6 POINT (6.83068 50.36311)
7 POINT (6.84294 50.37133)
8 POINT (6.93399 50.44348)
9 POINT (6.98600 50.47694)
10 POINT (6.97600 50.51162)
11 POINT (6.81000 50.38000)
Out[34]:
geometry Bach Streamcode
Stream
Sahr POINT (6.97000 50.51000) Sahrbach 27188
Liers POINT (6.94493 50.45914) Liersbach 271872
Armuths POINT (7.02543 50.48225) Armuthsbach 271856
Ans POINT (6.86918 50.45092) Ansbach 271854
Nohner POINT (6.85482 50.43257) Nohnerbach 271812
Trier POINT (6.82811 50.36239) Trierbach 27184
Wirft POINT (6.83068 50.36311) Wirftbach 271899
Adenauer POINT (6.84294 50.37133) Adenauerbach 27186
Denn POINT (6.93399 50.44348) Dennbach 2718748
Staffel POINT (6.98600 50.47694) Staffelbach 271874
Vischel POINT (6.97600 50.51162) Vischelbach 271892
UpperAhr POINT (6.81000 50.38000) UpperAhr 27182
Out[37]:
Stream geometry Bach Streamcode
0 Sahr POINT (6.97000 50.51000) Sahrbach 27188
1 Liers POINT (6.94493 50.45914) Liersbach 271872
2 Armuths POINT (7.02543 50.48225) Armuthsbach 271856
3 Ans POINT (6.86918 50.45092) Ansbach 271854
4 Nohner POINT (6.85482 50.43257) Nohnerbach 271812
5 Trier POINT (6.82811 50.36239) Trierbach 27184
6 Wirft POINT (6.83068 50.36311) Wirftbach 271899
7 Adenauer POINT (6.84294 50.37133) Adenauerbach 27186
8 Denn POINT (6.93399 50.44348) Dennbach 2718748
9 Staffel POINT (6.98600 50.47694) Staffelbach 271874
10 Vischel POINT (6.97600 50.51162) Vischelbach 271892
11 UpperAhr POINT (6.81000 50.38000) UpperAhr 27182
Out[38]:
geopandas.geodataframe.GeoDataFrame
Out[39]:
geopandas.geodataframe.GeoDataFrame

1.0.5.1  fiona: supported_drivers

Out[50]:
{'AeronavFAA': 'r',
 'ARCGEN': 'r',
 'BNA': 'rw',
 'DXF': 'rw',
 'CSV': 'raw',
 'OpenFileGDB': 'r',
 'ESRIJSON': 'r',
 'ESRI Shapefile': 'raw',
 'FlatGeobuf': 'rw',
 'GeoJSON': 'raw',
 'GeoJSONSeq': 'rw',
 'GPKG': 'raw',
 'GML': 'rw',
 'OGR_GMT': 'rw',
 'GPX': 'rw',
 'GPSTrackMaker': 'rw',
 'Idrisi': 'r',
 'MapInfo File': 'raw',
 'DGN': 'raw',
 'PCIDSK': 'rw',
 'OGR_PDS': 'r',
 'S57': 'r',
 'SEGY': 'r',
 'SUA': 'r',
 'TopoJSON': 'r'}

1.0.5.2  Variable $GMT_CACHEDIR

may point to a directory where the user places cached data files downloaded from the GMT data server.
When \C GMT_CACHEDIR is not defined, then the default value \C HOME/.gmt/cache will be assumed. The cache directory can be emptied by running gmt gmt clear cache.

Out[77]:
<pygmt.src.config.config at 0x1f00b5fc2b0>
Het systeem kan het opgegeven pad niet vinden.
gmt gmtget [core] 6.2.0 [64-bit] [MP] - Get individual GMT default settings or download data sets

usage: gmt gmtget [-D<download>] [-G<defaultsfile>] [-I<inc>] [-L] [-N] [-Q] [PARAMETER1 PARAMETER2 PARAMETER3 ...] [-V[<level>]]

	For available PARAMETERS, see gmt.conf man page
	OPTIONS:
	-D Download data from the selected GMT server [oceania]
	    Append one of the directories to download:
	      cache: The entire contents of the cache directory.
	      data: The entire contents of the data directory.
	        Append =<planet> to only download the data/<planet> directory.
	        Append =<dataset1,dataset2...> to only download the stated datasets.
	    -Dall downloads both cache and all datasets.
	    Run "gmt docs data" to learn about available data sets.
	-G Set name of specific gmt.conf file to process.
	   [Default looks for file in current directory.  If not found,
	   it looks in the home directory, if not found it uses the GMT defaults].
	-I Limit the download of data sets to grid spacings of <inc> or larger [0].
	-L Write one parameter value per line [Default writes all on one line].
	-N Do NOT convert grids downloaded with -D to netCDF but leave as JP2.
	-Q In conjunction with -D, will list but not download the selected data.
	-V Change the verbosity level (currently t).
	   Choose among 7 levels; each level adds more messages:
	     q - Quiet, not even fatal error messages.
	     e - Error messages only.
	     w - Warnings [Default].
	     t - Timings (time-intensive operations only).
	     i - Informational messages (or just -V).
	     c - Compatibility warnings.
	     d - Debugging messages.
	-^ (or -) Print short synopsis message.
	-+ (or +) Print longer synopsis message.
	-? (or no arguments) Print this usage message.
	--PAR=<value> Temporarily override GMT default setting(s) (repeatable).
	(See gmt.conf man page for GMT default parameters).
'gmt.conf' is not recognized as an internal or external command,
operable program or batch file.
Out[92]:
Index(['Bach', 'Distance', 'Lati', 'Long', 'Latitude', 'Longitude'], dtype='object')
Out[97]:
Flow rate (m³/s)Ans
Time_lag
2021-06-10 00:46:00 0.0
2021-06-10 01:20:00 0.0
2021-06-10 01:35:00 0.0
2021-06-10 01:46:00 0.0
2021-06-10 01:50:00 0.0
... ...
2021-10-13 16:54:00 0.0
2021-10-13 17:09:00 0.0
2021-10-13 17:16:00 0.0
2021-10-13 17:24:00 0.0
2021-10-13 17:39:00 0.0

29436 rows × 1 columns

Out[98]:
Flow rate (m³/s)Ans Name
Time_lag
2021-06-10 00:46:00 0.0 Ans
2021-06-10 01:20:00 0.0 Ans
2021-06-10 01:35:00 0.0 Ans
2021-06-10 01:46:00 0.0 Ans
2021-06-10 01:50:00 0.0 Ans
... ... ...
2021-10-13 16:54:00 0.0 Ans
2021-10-13 17:09:00 0.0 Ans
2021-10-13 17:16:00 0.0 Ans
2021-10-13 17:24:00 0.0 Ans
2021-10-13 17:39:00 0.0 Ans

29436 rows × 2 columns

1.0.6  Land Use Proportional.xlsx

I'll merge this land use table with a table containing distances and geometrical info, so I can plot a map.

Out[3]:
Mid Ahr UpperAhr Armuthsbach Sahrbach Trierbach Adenauerbach Staffelbach Weidenbach Nohnerbach Liersbach Dennbach Wirftbach Ansbach Vischelbach Rivervalley Unnamed: 16 Unnamed: 17
Land Use
agriculture 0.09 0.14 0.14 0.09 0.11 2.23e-02 3.05e-02 4.28e-03 0.15 4.49e-02 3.30e-03 0.10 4.97e-02 0.05 0.08 53565.0 0.08
grassland 0.30 0.40 0.32 0.26 0.36 2.15e-01 2.58e-01 1.76e-01 0.32 2.00e-01 7.66e-02 0.31 2.42e-01 0.27 0.24 162796.0 0.24
forest 0.56 0.41 0.51 0.61 0.47 7.24e-01 6.96e-01 8.05e-01 0.49 7.40e-01 9.06e-01 0.54 6.85e-01 0.62 0.62 416011.0 0.62
build 0.03 0.03 0.02 0.03 0.04 3.57e-02 1.09e-02 8.79e-03 0.02 8.65e-03 6.26e-03 0.04 1.57e-02 0.01 0.03 22432.0 0.03
bare_soils 0.01 0.02 0.01 0.01 0.01 4.95e-03 5.21e-03 5.95e-03 0.02 6.30e-03 8.11e-03 0.02 8.11e-03 0.01 0.01 7335.0 0.01
slope 0.40 0.52 1.08 1.06 0.84 1.70e+00 1.67e+00 2.33e+00 0.96 2.30e+00 1.68e+00 1.49 1.37e+00 1.45 0.40 6893.0 nodata
slope_2 0.53 1.08 1.71 1.50 1.03 1.79e+00 2.99e+00 2.43e+00 1.56 1.99e+00 4.10e+00 2.30 2.50e+00 1.66 0.44 NaN NaN
Out[4]:
Land Use agriculture grassland forest build bare_soils slope slope_2
Mid Ahr 0.09 0.3 0.56 0.03 0.01 0.4 0.53
UpperAhr 0.14 0.4 0.41 0.03 0.02 0.52 1.08
Armuthsbach 0.14 0.32 0.51 0.02 0.01 1.08 1.71
Sahrbach 0.09 0.26 0.61 0.03 0.01 1.06 1.5
Trierbach 0.11 0.36 0.47 0.04 0.01 0.84 1.03
Adenauerbach 0.02 0.22 0.72 0.04 0.0 1.7 1.79
Staffelbach 0.03 0.26 0.7 0.01 0.01 1.67 2.99
Weidenbach 0.0 0.18 0.8 0.01 0.01 2.33 2.43
Nohnerbach 0.15 0.32 0.49 0.02 0.02 0.96 1.56
Liersbach 0.04 0.2 0.74 0.01 0.01 2.3 1.99
Dennbach 0.0 0.08 0.91 0.01 0.01 1.68 4.1
Wirftbach 0.1 0.31 0.54 0.04 0.02 1.49 2.3
Ansbach 0.05 0.24 0.68 0.02 0.01 1.37 2.5
Vischelbach 0.05 0.27 0.62 0.01 0.01 1.45 1.66
Rivervalley 0.08 0.24 0.62 0.03 0.01 0.4 0.44
Unnamed: 16 53565.0 162796.0 416011.0 22432.0 7335.0 6893.0 NaN
Unnamed: 17 0.08 0.24 0.62 0.03 0.01 nodata NaN
Out[6]:
agriculture grassland forest build bare_soils slope slope_2 Bach Distance Lati Long Latitude Longitude Streamcode
Stream
UpperAhr 0.14 0.4 0.41 0.03 0.02 0.52 1.08 UpperAhr 34.20 50.38 6.81 50.44 6.65 27181
Armuths 0.14 0.32 0.51 0.02 0.01 1.08 1.71 Armuthsbach 18.80 50.45 6.87 50.47 6.71 271856
Sahr 0.09 0.26 0.61 0.03 0.01 1.06 1.5 Sahrbach 2.17 50.51 6.97 50.54 6.85 27188
Trier 0.11 0.36 0.47 0.04 0.01 0.84 1.03 Trierbach 34.00 50.36 6.83 50.30 6.91 27184
Adenauer 0.02 0.22 0.72 0.04 0.0 1.7 1.79 Adenauerbach 11.20 50.44 6.93 50.35 6.97 27186
Staffel 0.03 0.26 0.7 0.01 0.01 1.67 2.99 Staffelbach 10.20 50.48 7.03 50.46 7.11 271874
Weiden 0.0 0.18 0.8 0.01 0.01 2.33 2.43 Weidenbach 8.30 50.48 7.02 50.39 7.03 2718741
Nohner 0.15 0.32 0.49 0.02 0.02 0.96 1.56 Nohnerbach 35.50 50.36 6.83 50.28 6.88 271812
Liers 0.04 0.2 0.74 0.01 0.01 2.3 1.99 Liersbach 10.00 50.46 6.94 50.53 6.83 271872
Denn 0.0 0.08 0.91 0.01 0.01 1.68 4.1 Dennbach 6.30 50.48 6.99 50.42 6.97 2718748
Wirft 0.1 0.31 0.54 0.04 0.02 1.49 2.3 Wirftbach 22.00 50.37 6.84 50.34 6.93 271899
Ans 0.05 0.24 0.68 0.02 0.01 1.37 2.5 Ansbach 22.00 50.43 6.85 50.44 6.75 271854
Vischel 0.05 0.27 0.62 0.01 0.01 1.45 1.66 Vischelbach 1.00 50.51 6.98 50.57 6.94 271892

1.0.6.1  Adding the "min" ,"max","mean" of the slopes of the drainage area's.

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[7]:
zone sum count min max mean geometry
0 27181 2.52e+08 5.14e+11 474197 0.00 7.76e+06 1.08e+06 None
1 271899 2.48e+07 5.82e+10 46641 4814.83 7.69e+06 1.25e+06 None
2 2718741 3.71e+07 1.68e+11 69621 16775.95 9.49e+06 2.41e+06 None
3 271812 3.16e+07 5.27e+10 59435 3169.89 5.75e+06 8.86e+05 None
4 271892 1.89e+07 4.47e+10 35467 4745.09 7.21e+06 1.26e+06 None
5 2718748 1.92e+07 8.56e+10 36061 17462.82 9.95e+06 2.38e+06 None
6 271874 3.70e+07 1.36e+11 69550 4245.12 7.51e+06 1.95e+06 None
7 27184 5.55e+07 1.10e+11 104321 5898.14 6.73e+06 1.06e+06 None
8 271856 7.29e+07 1.87e+11 136895 1281.80 1.03e+07 1.36e+06 None
9 271854 1.46e+07 4.47e+10 27419 12871.94 9.03e+06 1.63e+06 None
10 27186 5.70e+07 2.25e+11 107100 4360.62 9.98e+06 2.10e+06 None
11 27188 4.60e+07 1.28e+11 86330 3245.12 9.56e+06 1.48e+06 None
12 271872 2.64e+07 1.07e+11 49517 8374.52 9.08e+06 2.15e+06 None
C:\Users\Kurt\AppData\Local\Temp/ipykernel_12488/1758689715.py:2: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  catch_slope["min" ]= catch_slope["min" ] /1000000   # convers. to %
C:\Users\Kurt\AppData\Local\Temp/ipykernel_12488/1758689715.py:3: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  catch_slope["max" ]= catch_slope["max"] /1000000
C:\Users\Kurt\AppData\Local\Temp/ipykernel_12488/1758689715.py:4: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  catch_slope["mean" ]= catch_slope["mean"] /1000000
C:\Users\Kurt\AppData\Local\Temp/ipykernel_12488/1758689715.py:5: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  catch_slope["zone"]= catch_slope["zone"].astype('int32')
Out[8]:
zone min max mean
0 27181 0.00e+00 7.76 1.08
1 271899 4.81e-03 7.69 1.25
2 2718741 1.68e-02 9.49 2.41
3 271812 3.17e-03 5.75 0.89
4 271892 4.75e-03 7.21 1.26
5 2718748 1.75e-02 9.95 2.38
6 271874 4.25e-03 7.51 1.95
7 27184 5.90e-03 6.73 1.06
8 271856 1.28e-03 10.33 1.36
9 271854 1.29e-02 9.03 1.63
10 27186 4.36e-03 9.98 2.10
11 27188 3.25e-03 9.56 1.48
12 271872 8.37e-03 9.08 2.15
Out[9]:
agriculture grassland forest build bare_soils slope slope_2 Bach Distance Lati Long Latitude Longitude Streamcode zone min max mean
0 0.14 0.4 0.41 0.03 0.02 0.52 1.08 UpperAhr 34.20 50.38 6.81 50.44 6.65 27181 27181 0.00e+00 7.76 1.08
1 0.14 0.32 0.51 0.02 0.01 1.08 1.71 Armuthsbach 18.80 50.45 6.87 50.47 6.71 271856 271856 1.28e-03 10.33 1.36
2 0.09 0.26 0.61 0.03 0.01 1.06 1.5 Sahrbach 2.17 50.51 6.97 50.54 6.85 27188 27188 3.25e-03 9.56 1.48
3 0.11 0.36 0.47 0.04 0.01 0.84 1.03 Trierbach 34.00 50.36 6.83 50.30 6.91 27184 27184 5.90e-03 6.73 1.06
4 0.02 0.22 0.72 0.04 0.0 1.7 1.79 Adenauerbach 11.20 50.44 6.93 50.35 6.97 27186 27186 4.36e-03 9.98 2.10
5 0.03 0.26 0.7 0.01 0.01 1.67 2.99 Staffelbach 10.20 50.48 7.03 50.46 7.11 271874 271874 4.25e-03 7.51 1.95
6 0.0 0.18 0.8 0.01 0.01 2.33 2.43 Weidenbach 8.30 50.48 7.02 50.39 7.03 2718741 2718741 1.68e-02 9.49 2.41
7 0.15 0.32 0.49 0.02 0.02 0.96 1.56 Nohnerbach 35.50 50.36 6.83 50.28 6.88 271812 271812 3.17e-03 5.75 0.89
8 0.04 0.2 0.74 0.01 0.01 2.3 1.99 Liersbach 10.00 50.46 6.94 50.53 6.83 271872 271872 8.37e-03 9.08 2.15
9 0.0 0.08 0.91 0.01 0.01 1.68 4.1 Dennbach 6.30 50.48 6.99 50.42 6.97 2718748 2718748 1.75e-02 9.95 2.38
10 0.1 0.31 0.54 0.04 0.02 1.49 2.3 Wirftbach 22.00 50.37 6.84 50.34 6.93 271899 271899 4.81e-03 7.69 1.25
11 0.05 0.24 0.68 0.02 0.01 1.37 2.5 Ansbach 22.00 50.43 6.85 50.44 6.75 271854 271854 1.29e-02 9.03 1.63
12 0.05 0.27 0.62 0.01 0.01 1.45 1.66 Vischelbach 1.00 50.51 6.98 50.57 6.94 271892 271892 4.75e-03 7.21 1.26
Out[14]:
agriculture grassland forest build bare_soils slope slope_2 Distance Lati Long Latitude Longitude Streamcode zone min max mean slopevalley_stream
Bach
UpperAhr 0.14 0.4 0.41 0.03 0.02 0.52 1.08 34.20 50.38 6.81 50.44 6.65 27181 27181 0.00e+00 7.76 1.08 2.09
Armuthsbach 0.14 0.32 0.51 0.02 0.01 1.08 1.71 18.80 50.45 6.87 50.47 6.71 271856 271856 1.28e-03 10.33 1.36 1.26
Sahrbach 0.09 0.26 0.61 0.03 0.01 1.06 1.5 2.17 50.51 6.97 50.54 6.85 27188 27188 3.25e-03 9.56 1.48 1.4
Trierbach 0.11 0.36 0.47 0.04 0.01 0.84 1.03 34.00 50.36 6.83 50.30 6.91 27184 27184 5.90e-03 6.73 1.06 1.26
Adenauerbach 0.02 0.22 0.72 0.04 0.0 1.7 1.79 11.20 50.44 6.93 50.35 6.97 27186 27186 4.36e-03 9.98 2.10 1.24
Staffelbach 0.03 0.26 0.7 0.01 0.01 1.67 2.99 10.20 50.48 7.03 50.46 7.11 271874 271874 4.25e-03 7.51 1.95 1.17
Weidenbach 0.0 0.18 0.8 0.01 0.01 2.33 2.43 8.30 50.48 7.02 50.39 7.03 2718741 2718741 1.68e-02 9.49 2.41 1.03
Nohnerbach 0.15 0.32 0.49 0.02 0.02 0.96 1.56 35.50 50.36 6.83 50.28 6.88 271812 271812 3.17e-03 5.75 0.89 0.92
Liersbach 0.04 0.2 0.74 0.01 0.01 2.3 1.99 10.00 50.46 6.94 50.53 6.83 271872 271872 8.37e-03 9.08 2.15 0.94
Dennbach 0.0 0.08 0.91 0.01 0.01 1.68 4.1 6.30 50.48 6.99 50.42 6.97 2718748 2718748 1.75e-02 9.95 2.38 1.41
Wirftbach 0.1 0.31 0.54 0.04 0.02 1.49 2.3 22.00 50.37 6.84 50.34 6.93 271899 271899 4.81e-03 7.69 1.25 0.84
Ansbach 0.05 0.24 0.68 0.02 0.01 1.37 2.5 22.00 50.43 6.85 50.44 6.75 271854 271854 1.29e-02 9.03 1.63 1.19
Vischelbach 0.05 0.27 0.62 0.01 0.01 1.45 1.66 1.00 50.51 6.98 50.57 6.94 271892 271892 4.75e-03 7.21 1.26 0.87
Out[16]:
<AxesSubplot:xlabel='Bach'>

We make also a merger with a surface area dataframe. Note that the "Max_Q" is no longer correct due to picking some other rainfall sets.

Out[22]:
agriculture grassland forest build bare_soils slope slope_2 Bach_x Distance Lati Long Latitude Longitude Streamcode Bach_y Area Max_Q Bache
0 0.14 0.32 0.51 0.02 0.01 1.08 1.71 Armuthsbach 18.80 50.45 6.87 50.47 6.71 271856 Armuths 72.60 139.48 Armuthsbach
1 0.09 0.26 0.61 0.03 0.01 1.06 1.5 Sahrbach 2.17 50.51 6.97 50.54 6.85 27188 Sahr 45.60 86.19 Sahrbach
2 0.11 0.36 0.47 0.04 0.01 0.84 1.03 Trierbach 34.00 50.36 6.83 50.30 6.91 27184 Trier 55.06 84.78 Trierbach
3 0.02 0.22 0.72 0.04 0.0 1.7 1.79 Adenauerbach 11.20 50.44 6.93 50.35 6.97 27186 Adenauer 58.45 108.72 Adenauerbach
4 0.03 0.26 0.7 0.01 0.01 1.67 2.99 Staffelbach 10.20 50.48 7.03 50.46 7.11 271874 Staffel 38.00 38.12 Staffelbach
5 0.0 0.18 0.8 0.01 0.01 2.33 2.43 Weidenbach 8.30 50.48 7.02 50.39 7.03 2718741 Weiden 37.90 77.85 Weidenbach
6 0.15 0.32 0.49 0.02 0.02 0.96 1.56 Nohnerbach 35.50 50.36 6.83 50.28 6.88 271812 Nohner 31.26 57.05 Nohnerbach
7 0.04 0.2 0.74 0.01 0.01 2.3 1.99 Liersbach 10.00 50.46 6.94 50.53 6.83 271872 Liers 28.94 77.87 Liersbach
8 0.0 0.08 0.91 0.01 0.01 1.68 4.1 Dennbach 6.30 50.48 6.99 50.42 6.97 2718748 Denn 20.00 46.28 Dennbach
9 0.1 0.31 0.54 0.04 0.02 1.49 2.3 Wirftbach 22.00 50.37 6.84 50.34 6.93 271899 Wirft 25.20 41.57 Wirftbach
10 0.05 0.24 0.68 0.02 0.01 1.37 2.5 Ansbach 22.00 50.43 6.85 50.44 6.75 271854 Ans 15.00 41.13 Ansbach
11 0.05 0.27 0.62 0.01 0.01 1.45 1.66 Vischelbach 1.00 50.51 6.98 50.57 6.94 271892 Vischel 20.70 40.00 Vischelbach

The outflow for only 1 day was not so important as a feature, as it turned out...

Out[24]:
agriculture grassland forest build bare_soils slope slope_2 Bach_x Distance Lati Long Latitude Longitude Streamcode Bach_y Area Max_Q Bache SUM1407
0 0.14 0.32 0.51 0.02 0.01 1.08 1.71 Armuthsbach 18.80 50.45 6.87 50.47 6.71 271856 Armuths 72.60 139.48 Armuthsbach 140.85
1 0.09 0.26 0.61 0.03 0.01 1.06 1.5 Sahrbach 2.17 50.51 6.97 50.54 6.85 27188 Sahr 45.60 86.19 Sahrbach 140.85
2 0.11 0.36 0.47 0.04 0.01 0.84 1.03 Trierbach 34.00 50.36 6.83 50.30 6.91 27184 Trier 55.06 84.78 Trierbach 80.00
3 0.02 0.22 0.72 0.04 0.0 1.7 1.79 Adenauerbach 11.20 50.44 6.93 50.35 6.97 27186 Adenauer 58.45 108.72 Adenauerbach 80.00
4 0.03 0.26 0.7 0.01 0.01 1.67 2.99 Staffelbach 10.20 50.48 7.03 50.46 7.11 271874 Staffel 38.00 38.12 Staffelbach 79.00
5 0.0 0.18 0.8 0.01 0.01 2.33 2.43 Weidenbach 8.30 50.48 7.02 50.39 7.03 2718741 Weiden 37.90 77.85 Weidenbach 79.23
6 0.15 0.32 0.49 0.02 0.02 0.96 1.56 Nohnerbach 35.50 50.36 6.83 50.28 6.88 271812 Nohner 31.26 57.05 Nohnerbach 102.60
7 0.04 0.2 0.74 0.01 0.01 2.3 1.99 Liersbach 10.00 50.46 6.94 50.53 6.83 271872 Liers 28.94 77.87 Liersbach 115.45
8 0.0 0.08 0.91 0.01 0.01 1.68 4.1 Dennbach 6.30 50.48 6.99 50.42 6.97 2718748 Denn 20.00 46.28 Dennbach 99.99
9 0.1 0.31 0.54 0.04 0.02 1.49 2.3 Wirftbach 22.00 50.37 6.84 50.34 6.93 271899 Wirft 25.20 41.57 Wirftbach 80.00
10 0.05 0.24 0.68 0.02 0.01 1.37 2.5 Ansbach 22.00 50.43 6.85 50.44 6.75 271854 Ans 15.00 41.13 Ansbach 115.45
11 0.05 0.27 0.62 0.01 0.01 1.45 1.66 Vischelbach 1.00 50.51 6.98 50.57 6.94 271892 Vischel 20.70 40.00 Vischelbach 131.00
<class 'pandas.core.frame.DataFrame'>
Int64Index: 12 entries, 0 to 11
Data columns (total 20 columns):
 #   Column       Non-Null Count  Dtype  
---  ------       --------------  -----  
 0   agriculture  12 non-null     object 
 1   grassland    12 non-null     object 
 2   forest       12 non-null     object 
 3   build        12 non-null     object 
 4   bare_soils   12 non-null     object 
 5   slope        12 non-null     object 
 6   slope_2      12 non-null     object 
 7   Bach_x       12 non-null     object 
 8   Distance     12 non-null     float64
 9   Lati         12 non-null     float64
 10  Long         12 non-null     float64
 11  Latitude     12 non-null     float64
 12  Longitude    12 non-null     float64
 13  Streamcode   12 non-null     int32  
 14  Bach_y       12 non-null     object 
 15  Area         12 non-null     float64
 16  Max_Q        12 non-null     float64
 17  Bache        12 non-null     object 
 18  SUM1407      12 non-null     float64
 19  Q_area       12 non-null     float64
dtypes: float64(9), int32(1), object(10)
memory usage: 1.9+ KB

1.0.6.2  Regression plots of land area and maximum outflow.

Note that these plots are only illustrative. For a better correlation rainfall-runoff we should add at least the soil texture, and land cover type. Also rainfall intensity, the saturation of upper soil horizon and the depth of subsoil saturation play a role.

Strange this positive relation of forests to higher outflows, but could it be that most forest are standing on steeper grounds than pastures or arable land?

Strange this positive relation of forests to higher outflows, but could it be that most forest are standing on steeper grounds than pastures or arable land

Staffelbach rainfall dataset was that of Neuenahr, which had lower volumes. Conversely, the Freilingen dataset was chosen for Ans- and Trierbach.

sns.lmplot( x='agriculture',y='Q_area', data=df_cd2);

Here the slope was entered in the calculation.

Buildings tend to be build on smoother surface area's for better stability.

sns.lmplot( x='build',y="Q_area", data=df_cd2, palette='tab20', ); # hue='Log_Q_area' ,legend='Bache',

1.0.7  ESA worldcover 2020 data

Out[8]:
Unnamed: 0 agriculture grassland forest build bare_soils slope sqrt_s Distance Lati Long Latitude Longitude Streamcode Bach_y Area Max_Q Bache SUM1407 Q_area Log_Q_area
Bach_x
Armuthsbach 0 1.39e-01 0.32 0.51 2.27e-02 1.33e-02 1.71 1.31 18.80 50.45 6.87 50.47 6.71 271856 Armuths 72.60 139.48 Armuthsbach 140.85 1.92 -4.37
Sahrbach 1 8.68e-02 0.26 0.61 2.52e-02 1.23e-02 1.50 1.22 2.17 50.51 6.97 50.54 6.85 27188 Sahr 45.60 86.19 Sahrbach 140.85 1.89 -4.37
Trierbach 2 1.10e-01 0.36 0.47 4.34e-02 1.40e-02 1.03 1.01 34.00 50.36 6.83 50.30 6.91 27184 Trier 55.06 84.78 Trierbach 80.00 1.54 -3.78
Adenauerbach 3 2.23e-02 0.22 0.72 3.57e-02 4.95e-03 1.79 1.34 11.20 50.44 6.93 50.35 6.97 27186 Adenauer 58.45 108.72 Adenauerbach 80.00 1.86 -4.29
Staffelbach 4 3.05e-02 0.26 0.70 1.09e-02 5.21e-03 2.99 1.73 10.20 50.48 7.03 50.46 7.11 271874 Staffel 38.00 38.12 Staffelbach 79.00 1.00 -4.88
Weidenbach 5 4.28e-03 0.18 0.80 8.79e-03 5.95e-03 2.43 1.56 8.30 50.48 7.02 50.39 7.03 2718741 Weiden 37.90 77.85 Weidenbach 79.23 2.05 -4.50
Nohnerbach 6 1.52e-01 0.32 0.49 1.83e-02 2.27e-02 1.56 1.25 35.50 50.36 6.83 50.28 6.88 271812 Nohner 31.26 57.05 Nohnerbach 102.60 1.82 -3.99
Liersbach 7 4.49e-02 0.20 0.74 8.65e-03 6.30e-03 2.00 1.41 10.00 50.46 6.94 50.53 6.83 271872 Liers 28.94 77.87 Liersbach 115.45 2.69 -4.59
Dennbach 8 3.30e-03 0.08 0.91 6.26e-03 8.11e-03 4.10 2.02 6.30 50.48 6.99 50.42 6.97 2718748 Denn 20.00 46.28 Dennbach 99.99 2.31 -4.28
Wirftbach 9 9.76e-02 0.31 0.54 3.65e-02 1.68e-02 2.30 1.52 22.00 50.37 6.84 50.34 6.93 271899 Wirft 25.20 41.57 Wirftbach 80.00 1.65 -4.28
Ansbach 10 4.97e-02 0.24 0.68 1.57e-02 8.11e-03 2.50 1.58 22.00 50.43 6.85 50.44 6.75 271854 Ans 15.00 41.13 Ansbach 115.45 2.74 -4.05
Vischelbach 11 4.64e-02 0.27 0.62 1.11e-02 1.09e-02 1.66 1.29 1.00 50.51 6.98 50.57 6.94 271892 Vischel 20.70 40.00 Vischelbach 131.00 1.93 -4.59
Upper Ahr 12 1.36e-01 0.40 0.41 2.85e-02 2.12e-02 1.08 1.04 35.00 50.37 6.80 50.43 6.66 27181 UpperAhr 252.34 382.54 Upper Ahr 108.00 2.03 -4.59
Out[4]:
wkt_geom Treecover Grassland Cropland Built-up Bare_spars Waterbody LULC_TOTAL
Name
Adenauerbach MultiPolygon (((4103890.61303603276610374 3029... 0.84 0.14 4.89e-03 1.76e-02 1.54e-03 1.00e-06 1167920
Ansbach MultiPolygon (((4090406.74759881710633636 3042... 0.74 0.24 1.36e-02 6.92e-03 8.61e-04 0.00e+00 301917
Armuthsbach MultiPolygon (((4086674.71472339006140828 3044... 0.57 0.38 3.90e-02 9.93e-03 1.28e-03 0.00e+00 1493201
Dennbach MultiPolygon (((4105954.62636257708072662 3038... 0.96 0.03 1.07e-04 2.75e-03 6.60e-04 0.00e+00 392272
Liersbach MultiPolygon (((4098323.02225150354206562 3050... 0.80 0.19 5.11e-03 2.03e-03 2.54e-04 0.00e+00 539988
Nohnerbach MultiPolygon (((4092905.83836966659873724 3032... 0.56 0.33 9.53e-02 8.65e-03 1.07e-03 9.00e-06 652011
Sahrbach MultiPolygon (((4100654.05724611924961209 3048... 0.66 0.32 1.18e-02 1.22e-02 1.28e-03 2.00e-06 945593
Staffelbach MultiPolygon (((4110741.36151165282353759 3042... 0.77 0.22 1.03e-02 4.03e-03 1.12e-03 1.00e-06 758791
Trierbach MultiPolygon (((4095046.19109569722786546 3031... 0.56 0.32 9.13e-02 2.52e-02 2.14e-03 0.00e+00 1136419
Upper Ahr MultiPolygon (((4096023.07086387882009149 3022... 0.48 0.39 1.07e-01 1.70e-02 4.19e-03 7.59e-04 5178833
Vischelbach MultiPolygon (((4104826.14673754805698991 3050... 0.70 0.28 9.06e-03 8.62e-03 1.51e-03 0.00e+00 386803
Weidenbach MultiPolygon (((4108346.57140650320798159 3034... 0.88 0.12 1.48e-03 3.20e-03 5.35e-04 0.00e+00 763915
Wirftbach MultiPolygon (((4101582.24368390860036016 3029... 0.61 0.32 4.55e-02 2.42e-02 1.16e-03 1.37e-04 511305
Out[9]:
wkt_geom Treecover Grassland Cropland Built-up Bare_spars Waterbody LULC_TOTAL Unnamed: 0 agriculture grassland forest build bare_soils slope sqrt_s Distance Lati Long Latitude Longitude Streamcode Bach_y Area Max_Q Bache SUM1407 Q_area Log_Q_area
Adenauerbach MultiPolygon (((4103890.61303603276610374 3029... 0.84 0.14 4.89e-03 1.76e-02 1.54e-03 1.00e-06 1167920 3 2.23e-02 0.22 0.72 3.57e-02 4.95e-03 1.79 1.34 11.20 50.44 6.93 50.35 6.97 27186 Adenauer 58.45 108.72 Adenauerbach 80.00 1.86 -4.29
Ansbach MultiPolygon (((4090406.74759881710633636 3042... 0.74 0.24 1.36e-02 6.92e-03 8.61e-04 0.00e+00 301917 10 4.97e-02 0.24 0.68 1.57e-02 8.11e-03 2.50 1.58 22.00 50.43 6.85 50.44 6.75 271854 Ans 15.00 41.13 Ansbach 115.45 2.74 -4.05
Armuthsbach MultiPolygon (((4086674.71472339006140828 3044... 0.57 0.38 3.90e-02 9.93e-03 1.28e-03 0.00e+00 1493201 0 1.39e-01 0.32 0.51 2.27e-02 1.33e-02 1.71 1.31 18.80 50.45 6.87 50.47 6.71 271856 Armuths 72.60 139.48 Armuthsbach 140.85 1.92 -4.37
Dennbach MultiPolygon (((4105954.62636257708072662 3038... 0.96 0.03 1.07e-04 2.75e-03 6.60e-04 0.00e+00 392272 8 3.30e-03 0.08 0.91 6.26e-03 8.11e-03 4.10 2.02 6.30 50.48 6.99 50.42 6.97 2718748 Denn 20.00 46.28 Dennbach 99.99 2.31 -4.28
Liersbach MultiPolygon (((4098323.02225150354206562 3050... 0.80 0.19 5.11e-03 2.03e-03 2.54e-04 0.00e+00 539988 7 4.49e-02 0.20 0.74 8.65e-03 6.30e-03 2.00 1.41 10.00 50.46 6.94 50.53 6.83 271872 Liers 28.94 77.87 Liersbach 115.45 2.69 -4.59
Nohnerbach MultiPolygon (((4092905.83836966659873724 3032... 0.56 0.33 9.53e-02 8.65e-03 1.07e-03 9.00e-06 652011 6 1.52e-01 0.32 0.49 1.83e-02 2.27e-02 1.56 1.25 35.50 50.36 6.83 50.28 6.88 271812 Nohner 31.26 57.05 Nohnerbach 102.60 1.82 -3.99
Sahrbach MultiPolygon (((4100654.05724611924961209 3048... 0.66 0.32 1.18e-02 1.22e-02 1.28e-03 2.00e-06 945593 1 8.68e-02 0.26 0.61 2.52e-02 1.23e-02 1.50 1.22 2.17 50.51 6.97 50.54 6.85 27188 Sahr 45.60 86.19 Sahrbach 140.85 1.89 -4.37
Staffelbach MultiPolygon (((4110741.36151165282353759 3042... 0.77 0.22 1.03e-02 4.03e-03 1.12e-03 1.00e-06 758791 4 3.05e-02 0.26 0.70 1.09e-02 5.21e-03 2.99 1.73 10.20 50.48 7.03 50.46 7.11 271874 Staffel 38.00 38.12 Staffelbach 79.00 1.00 -4.88
Trierbach MultiPolygon (((4095046.19109569722786546 3031... 0.56 0.32 9.13e-02 2.52e-02 2.14e-03 0.00e+00 1136419 2 1.10e-01 0.36 0.47 4.34e-02 1.40e-02 1.03 1.01 34.00 50.36 6.83 50.30 6.91 27184 Trier 55.06 84.78 Trierbach 80.00 1.54 -3.78
Upper Ahr MultiPolygon (((4096023.07086387882009149 3022... 0.48 0.39 1.07e-01 1.70e-02 4.19e-03 7.59e-04 5178833 12 1.36e-01 0.40 0.41 2.85e-02 2.12e-02 1.08 1.04 35.00 50.37 6.80 50.43 6.66 27181 UpperAhr 252.34 382.54 Upper Ahr 108.00 2.03 -4.59
Vischelbach MultiPolygon (((4104826.14673754805698991 3050... 0.70 0.28 9.06e-03 8.62e-03 1.51e-03 0.00e+00 386803 11 4.64e-02 0.27 0.62 1.11e-02 1.09e-02 1.66 1.29 1.00 50.51 6.98 50.57 6.94 271892 Vischel 20.70 40.00 Vischelbach 131.00 1.93 -4.59
Weidenbach MultiPolygon (((4108346.57140650320798159 3034... 0.88 0.12 1.48e-03 3.20e-03 5.35e-04 0.00e+00 763915 5 4.28e-03 0.18 0.80 8.79e-03 5.95e-03 2.43 1.56 8.30 50.48 7.02 50.39 7.03 2718741 Weiden 37.90 77.85 Weidenbach 79.23 2.05 -4.50
Wirftbach MultiPolygon (((4101582.24368390860036016 3029... 0.61 0.32 4.55e-02 2.42e-02 1.16e-03 1.37e-04 511305 9 9.76e-02 0.31 0.54 3.65e-02 1.68e-02 2.30 1.52 22.00 50.37 6.84 50.34 6.93 271899 Wirft 25.20 41.57 Wirftbach 80.00 1.65 -4.28

1.0.8  Comparison of Land use proportions from ...

the Land use classification map Germany 2019 and the ESA WorldCover 10m 2020 map.

The Land use classification map Germany 2019 is based on a map and data collected spanning the whole year 2019. In addition, this new map has been updated recently.
The ESA WorldCover 10m 2020 map bears in its title "2020", however it hasn't had recent updates, and it also contains data from an older timerange: 2018 until 2019.

It turns out that tree cover is not the same as forested land. When you zoom in you can see that there are small spots of tree cover within builded areas. This is not real forest, it is tree cover of only one or a few trees.

Out[40]:
Forest Pastures Arable Buildings Bare_sparse
Adenauerbach 0.11 -7.72e-02 -1.74e-02 -1.81e-02 -3.41e-03
Ansbach 0.06 -4.63e-03 -3.60e-02 -8.75e-03 -7.25e-03
Armuthsbach 0.06 6.10e-02 -1.00e-01 -1.27e-02 -1.20e-02
Dennbach 0.06 -4.46e-02 -3.20e-03 -3.51e-03 -7.45e-03
Liersbach 0.06 -1.17e-02 -3.98e-02 -6.62e-03 -6.05e-03
Nohnerbach 0.07 1.40e-02 -5.63e-02 -9.69e-03 -2.16e-02
Sahrbach 0.05 5.20e-02 -7.50e-02 -1.30e-02 -1.10e-02
Staffelbach 0.07 -4.05e-02 -2.02e-02 -6.91e-03 -4.09e-03
Trierbach 0.09 -3.80e-02 -1.89e-02 -1.82e-02 -1.19e-02
Upper Ahr 0.07 -1.54e-02 -2.98e-02 -1.15e-02 -1.70e-02
Vischelbach 0.08 4.75e-03 -3.73e-02 -2.50e-03 -9.42e-03
Weidenbach 0.07 -6.03e-02 -2.80e-03 -5.59e-03 -5.42e-03
Wirftbach 0.07 1.20e-02 -5.21e-02 -1.23e-02 -1.56e-02

So, over the course of 1-1.5 year, 11 % of the forest of the Adenauerbach region has disappeared.
This is a cut rate that is not sustainable in terms of longterm forest management with tree species like oak and beech.
There might have been done some forced or illegal tree fellings.
Infestations of trees with the European spruce beetle fall under forced fellings.
Keep in mind that any "beetle wood" that was not sold due to poor price offerings, will most of times not appear in the official wood cuttings or wood sales data!

Out[24]:
Forest Pastures Arable Buildings Bare_sparse
Adenauerbach 0.16 -0.36 -0.78 -0.51 -0.69
Ansbach 0.08 -0.02 -0.73 -0.56 -0.89
Armuthsbach 0.12 0.19 -0.72 -0.56 -0.90
Dennbach 0.07 -0.58 -0.97 -0.56 -0.92
Liersbach 0.09 -0.06 -0.89 -0.77 -0.96
Nohnerbach 0.15 0.04 -0.37 -0.53 -0.95
Sahrbach 0.08 0.20 -0.86 -0.51 -0.90
Staffelbach 0.10 -0.16 -0.66 -0.63 -0.79
Trierbach 0.19 -0.11 -0.17 -0.42 -0.85
Upper Ahr 0.18 -0.04 -0.22 -0.40 -0.80
Vischelbach 0.12 0.02 -0.80 -0.22 -0.86
Weidenbach 0.09 -0.34 -0.65 -0.64 -0.91
Wirftbach 0.13 0.04 -0.53 -0.34 -0.93
Out[15]:
Forest Pastures Arable Buildings Bare_sparse
Adenauerbach 15.71 -35.87 -78.02 -50.70 -68.88
Ansbach 8.31 -1.92 -72.59 -55.84 -89.38
Armuthsbach 12.41 19.36 -71.93 -56.21 -90.39
Dennbach 6.52 -58.24 -96.76 -56.13 -91.87
Liersbach 8.63 -5.85 -88.63 -76.54 -95.97
Nohnerbach 15.06 4.37 -37.13 -52.83 -95.29
Sahrbach 7.66 19.64 -86.35 -51.49 -89.56
Staffelbach 10.28 -15.73 -66.10 -63.14 -78.51
Trierbach 18.88 -10.61 -17.17 -41.96 -84.74
Upper Ahr 17.90 -3.81 -21.85 -40.47 -80.19
Vischelbach 12.49 1.74 -80.46 -22.49 -86.16
Weidenbach 9.20 -34.22 -65.37 -63.56 -91.01
Wirftbach 12.60 3.92 -53.35 -33.73 -93.10

The difference in land use surface area claimed by the "newer" 2020 map.

Out[19]:
Forest Pastures Arable Buildings Bare_sparse Area Forest_km2 Pastures_km2 Arable_km2 Buildings_km2 Bare_sparse_km2
Adenauerbach 0.16 -0.36 -0.78 -0.51 -0.69 58.45 6.65 -4.51 -1.02 -1.06 -0.20
Ansbach 0.08 -0.02 -0.73 -0.56 -0.89 15.00 0.85 -0.07 -0.54 -0.13 -0.11
Armuthsbach 0.12 0.19 -0.72 -0.56 -0.90 72.60 4.59 4.43 -7.26 -0.93 -0.87
Dennbach 0.07 -0.58 -0.97 -0.56 -0.92 20.00 1.18 -0.89 -0.06 -0.07 -0.15
Liersbach 0.09 -0.06 -0.89 -0.77 -0.96 28.94 1.85 -0.34 -1.15 -0.19 -0.18
Nohnerbach 0.15 0.04 -0.37 -0.53 -0.95 31.26 2.29 0.44 -1.76 -0.30 -0.68
Sahrbach 0.08 0.20 -0.86 -0.51 -0.90 45.60 2.13 2.37 -3.42 -0.59 -0.50
Staffelbach 0.10 -0.16 -0.66 -0.63 -0.79 38.00 2.72 -1.54 -0.77 -0.26 -0.16
Trierbach 0.19 -0.11 -0.17 -0.42 -0.85 55.06 4.91 -2.09 -1.04 -1.00 -0.65
Upper Ahr 0.18 -0.04 -0.22 -0.40 -0.80 252.34 18.46 -3.88 -7.52 -2.91 -4.28
Vischelbach 0.12 0.02 -0.80 -0.22 -0.86 20.70 1.62 0.10 -0.77 -0.05 -0.19
Weidenbach 0.09 -0.34 -0.65 -0.64 -0.91 37.90 2.81 -2.29 -0.11 -0.21 -0.21
Wirftbach 0.13 0.04 -0.53 -0.34 -0.93 25.20 1.73 0.30 -1.31 -0.31 -0.39
Out[20]:
Forest_km2 Pastures_km2 Arable_km2 Buildings_km2 Bare_sparse_km2
Adenauerbach 6.65 -4.51 -1.02 -1.06 -0.20
Ansbach 0.85 -0.07 -0.54 -0.13 -0.11
Armuthsbach 4.59 4.43 -7.26 -0.93 -0.87
Dennbach 1.18 -0.89 -0.06 -0.07 -0.15
Liersbach 1.85 -0.34 -1.15 -0.19 -0.18
Nohnerbach 2.29 0.44 -1.76 -0.30 -0.68
Sahrbach 2.13 2.37 -3.42 -0.59 -0.50
Staffelbach 2.72 -1.54 -0.77 -0.26 -0.16
Trierbach 4.91 -2.09 -1.04 -1.00 -0.65
Upper Ahr 18.46 -3.88 -7.52 -2.91 -4.28
Vischelbach 1.62 0.10 -0.77 -0.05 -0.19
Weidenbach 2.81 -2.29 -0.11 -0.21 -0.21
Wirftbach 1.73 0.30 -1.31 -0.31 -0.39

1.0.9  Terrascope website with Python support

!pip3 install --extra-index-url https://artifactory.vgt.vito.be/api/pypi/python-packages/simple terracatalogueclient

Customize and run the following script:

1.0.10  Leaf area index Terrascope

The leaf area index (LAI) is a response parameter for photosynthesis as it directly relates to the light interception and gas exchange through the stomata. It is a dimensionless biophysical variable, which is calculated as the ratio of leaf area to per unit ground surface area. Monitoring of the LAI provides an understanding of dynamic changes in productivity, climate impacts on terrestrial ecosystems, energy balance, canopy water interception, and gas exchange. Therefore, understanding of the LAI is a crucial parameter for physiological, ecological, and climatological studies.

The values of this "Terrascope" Leaf area index range from 0 to 8. Picea abies has an effective LAI range of 3 to 8, from 40 % to 0 % defoliation. Defoliation is related to stand age and density. Leaf area index of Norway spruce stands in relation to age and defoliation.

Out[87]:
<xarray.DataArray (band: 1, y: 3241, x: 3949)>
[12798709 values with dtype=float32]
Coordinates:
  * band         (band) int32 1
  * x            (x) float64 3.274e+05 3.274e+05 ... 3.669e+05 3.669e+05
  * y            (y) float64 5.6e+06 5.6e+06 5.6e+06 ... 5.568e+06 5.568e+06
    spatial_ref  int32 0
Attributes:
    scale_factor:  1.0
    add_offset:    0.0
Out[89]:
(array([ 557123., 1242962., 1771036., 1579836., 1087121.,  226332.,
          28482.,    1860.,      63.,     104.]),
 array([  0.,  25.,  50.,  75., 100., 125., 150., 175., 200., 225., 250.],
       dtype=float32),
 <BarContainer object of 10 artists>)

LAI histogram of the source map:

Out[63]:
(array([19962032., 22822615., 24834645., 24183484., 17146888.,  5203523.,
         1296826.,   134381.,    15914.,     4883.]),
 array([  0.,  25.,  50.,  75., 100., 125., 150., 175., 200., 225., 250.],
       dtype=float32),
 <BarContainer object of 10 artists>)

1.0.10.1  Masking a raster using a shapefile

Note: I rescaled the 0-255 range to a 0-8 range, but the technical document mentions the scale as 0.04, so the LAI values here should be corrected by *0.04/(8/255)

Out[24]:
1.2750000000000001
Out[24]: