Soil Face Research (SFR)
Soil Face Research examines the soil profile of the subsurface through excavation. This type of investigation is primarily used to assess the suitability of the soil for agricultural use or nature management.
import matplotlib.pyplot as plt
import brodata
sfr = brodata.sfr.SoilFaceResearch.from_bro_id("SFR000000000243")
sfr
SoilFaceResearch(broId='SFR000000000243', x=119150.0, y=440300.0)
Show the soil layers as a pandas DataFrame
sfr.soilLayer
| upperBoundary | upperBoundaryDetermination | lowerBoundary | lowerBoundaryDetermination | lowerBoundaryShape | layerDiscontinuous | anthropogenic | soilLife | rooted | slant | ... | mottlingDensity | evenlyMottled | aggregateShape | angularity | aggregateLengthClass | poreAbundanceClass | horizontallyAligned | disintegrating | roughness | peatType | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0.00 | onbekend | 0.15 | onbekend | onbekend | onbekend | nee | [onbekend] | onbekend | onbekend | ... | weinigTot2 | nee | blok | afgerond | kort5tot10mm | geen | nee | nee | NaN | NaN |
| 1 | 0.15 | onbekend | 0.35 | onbekend | onbekend | onbekend | nee | [onbekend] | onbekend | onbekend | ... | weinigTot2 | nee | prisma | scherp | matigLang20tot50mm | geen | nee | nee | ruw | NaN |
| 2 | 0.35 | onbekend | 0.50 | onbekend | onbekend | onbekend | nee | [onbekend] | onbekend | onbekend | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | verweerdKleirijk |
| 3 | 0.50 | onbekend | 0.70 | onbekend | onbekend | onbekend | nee | [onbekend] | onbekend | onbekend | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | broekveenEutroof |
| 4 | 0.70 | onbekend | 1.10 | onbekend | onbekend | onbekend | nee | [onbekend] | onbekend | onbekend | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | broekveenEutroof |
5 rows × 42 columns
Plot the soil layers similarly to Broloket’s style.
f, ax = plt.subplots(figsize=(8,8))
df = sfr.soilLayer
lithology_properties = {"Ahg": {"color":(104/255, 104/255, 104/255)},
"Cg": {"color": (255/255, 235/255, 190/255)},
"Cw": {"color": (255/255, 235/255, 190/255)},
"Cu": {"color": (255/255, 235/255, 190/255)},
"Cr": {"color": (255/255, 235/255, 190/255)}}
brodata.plot.bro_lithology_advanced(df, soil_name_column="horizonCode", x=0, ax=ax, width=0.5, lithology_properties=lithology_properties)
lithology_properties = {"matigZwareKlei": {"color": (170/255, 255/255, 110/255)},
"zeerZwareKlei": {"color": (170/255, 255/255, 110/255)},
"kleiigVeen": [{"width": 44/60, "color": (200/255, 145/255, 245/255)},
{"width": 16/60, "color": (170/255, 255/255, 110/255)}],
"veen": {"color": (200/255, 145/255, 245/255)}}
brodata.plot.bro_lithology_advanced(df, soil_name_column="pedologicalSoilName", x=1, ax=ax, width=0.5, lithology_properties=lithology_properties)
brodata.plot.bro_lithology_advanced(df, soil_name_column="soilNameNEN5104", x=2, ax=ax, width=0.5)
ax.set_xlim(-0.5, 3 - 0.5)
ax.set_xticks(range(3))
ax.set_xticklabels(["Horizonten", "Bodemkundige grondsoort", "Grondsoort NEN5104"])
ax.set_ylim(-df['lowerBoundary'].max()-0.1, 0.0)
ax.set_axisbelow(True)
ax.grid(True)
ax.set_ylabel('z (m ten opzicht van maaiveld)');
If present, display the investigatedInterval.
if hasattr(sfr, "investigatedInterval"):
sfr.investigatedInterval
Show the rest of the contents of the Soil Face Research.
sfr_data = sfr.to_dict()
sfr_data.pop("soilLayer")
if "investigatedInterval" in sfr_data:
sfr_data.pop("investigatedInterval")
sfr_data
{'SoilClassification': {'codeGroup': 'veengrond',
'classificationCode': ' 1s b ',
'specialFeatureTop': 'geen',
'soilClass': 'waardveengrond',
'peatClass': 'bosveen',
'reworkingClass': 'geen',
'groundwaterTableClass': 'IIa',
'specialFeatureSite': 'geen',
'specialFeatureBottom': [{'specialFeature': 'geen'}]},
'artificialDrainage': 'drainageOnbekend',
'artificiallyHumidified': 'onbekend',
'broId': 'SFR000000000243',
'compactionPresent': 'onbekend',
'coordinateTransformation': 'RDNAPTRANS2008',
'corrected': 'nee',
'currentProces': 'onbekend',
'deliveredLocation': <POINT (119150 440300)>,
'deliveryAccountableParty': '27378529',
'deliveryContext': 'archiefoverdracht',
'deregistered': 'nee',
'describedWidth': None,
'descriptionProcedure': 'AlterraK85-PB1',
'descriptionQuality': 'standaard',
'descriptionReportDate': Timestamp('1987-06-01 00:00:00'),
'discipline': 'bodemkunde',
'endDepthSoilFace': '1.10',
'fieldworkDate': Timestamp('1987-06-01 00:00:00'),
'fractionDistributionDetermined': 'nee',
'horizonRepetition': 'nee',
'horizontalPositioningDate': Timestamp('1987-06-01 00:00:00'),
'horizontalPositioningMethod': 'kaartKleinschalig',
'hydrologicalSetting': 'onbekend',
'id': 'BRO_0013',
'landscapeElement': None,
'litterLayerInvestigated': 'nee',
'localPhenomenon': ['onbekend'],
'localVerticalReferencePoint': 'maaiveld',
'lowerBoundarySandFraction': '50',
'meanHighestGroundwaterLevel': 0.1,
'meanHighestGroundwaterLevelReached': 'ja',
'meanLowestGroundwaterLevel': 0.7,
'objectRegistrationTime': '2020-03-23T09:47:52+01:00',
'offset': -1.04,
'outcropType': 'profielkuil',
'pitRefilled': 'onbekend',
'positionOnGroundBody': 'onbekend',
'qualityRegime': 'IMBRO/A',
'registrationCompletionTime': '2020-03-23T09:47:52+01:00',
'registrationStatus': 'voltooid',
'reregistered': 'nee',
'researchReportDate': Timestamp('1987-06-01 00:00:00'),
'rootableDepth': 0.3,
'rootableDepthReached': 'ja',
'sequenceDisturbed': 'nee',
'soilFaceOrientation': None,
'soilUse': 'grasland',
'standardizedLocation': <POINT (4.866 51.95)>,
'stopCriterion': 'onbekend',
'surfaceLevelShifted': 'geen',
'surveyPurpose': 'bodemkaartNederlandEenheidType',
'tracesOfChurningPresent': 'onbekend',
'underReview': 'nee',
'upperBoundaryShape': 'onbekend',
'verticalDatum': 'NAP',
'verticalPositioningMethod': 'AHN1',
'yearMonth': '2000-01'}