Skip to main content

Übersicht

Sie senden die Geometrie einer Parzelle, die Entwaldungsanalyse startet automatisch, und Sie lesen das Ergebnis als JSON und laden den Parzellenbericht als PDF. Ein Artikel oder Lieferant ist dafür nicht nötig — eine Parzelle mit Rohstoffgruppe genügt.

Berechtigungen

Schlüsselmechanismus, Basis-URL und die allgemeinen Statuscodes stehen in der Einführung; wie Sie einen Schlüssel anlegen, steht unter Einstellungen → API-Schlüssel. Parzellen gibt es nur im EUDR-Modul. plots:write deckt alles ab; plots:read genügt, um das Ergebnis zu lesen und den Bericht herunterzuladen.
In einem Kunden-Workspace antwortet der Bericht mit 403 und EUDR compliance module is not enabled, wenn das EUDR-Modul für den Benutzer, für den der Schlüssel handelt, nicht aktiviert ist (persönlicher Schlüssel: sein Inhaber; Unternehmensschlüssel: der ranghöchste aktive Benutzer des Workspace). Das Ergebnis-JSON hat diese Prüfung nicht.

Parzelle anlegen

POST /api/v1/plots legt eine Parzelle an und startet ihre Analyse. Alle Felder stehen in der Endpunkt-Referenz; für eine Integration wichtig:
  • geojson ist Pflicht (siehe Geometrie).
  • commodityGroup ist Pflicht, wenn Sie keine supplierArticleIds senden: eine von cattle, cocoa, coffee, oil_palm, rubber, soya, wood. Die API akzeptiert außerdem non_relevant (steht in der Fehlermeldung); für eine Parzelle, die analysiert werden soll, nicht senden. Mit supplierArticleIds wird die Gruppe dann aus den Artikeln abgeleitet.
  • Bei wood ist species Pflicht — je Eintrag commonName und scientificName.
  • Tragen Sie Ihre eigene Parzellenreferenz in name ein (siehe Idempotenz).
  • country (ISO 3166-1 Alpha-2, z.B. BR): Ohne Land (oder mit einem nicht auflösbaren Wert) greift das Überspringen für Länder mit geringem Risiko nie; die Parzelle wird immer analysiert.

Geometrie

  • Erlaubt sind Polygon, MultiPolygon, Point und MultiPoint — als bloße Geometrie oder als Feature. Koordinaten in WGS84, Reihenfolge [Längengrad, Breitengrad]; eine Höhenangabe (dritter Wert) wird angenommen, aber nicht gespeichert. Koordinaten außerhalb von Längengrad ±180 / Breitengrad ±90 werden abgelehnt; es wird nichts gespeichert.
  • Eine Anfrage legt eine Parzelle an. Eine FeatureCollection wird abgelehnt — senden Sie jedes Feature als eigene Anfrage. Andere Typen (LineString, GeometryCollection, …) werden ebenfalls abgelehnt.
  • Ist size angegeben, ist ein Point oder MultiPoint nur bis 4 ha zulässig (20.000 ha, wenn commodityGroup cattle ist); darüber verlangt die EUDR ein Polygon. Ohne size gibt es keine Flächenprüfung.

Qualitätsprüfungen

Vor dem Speichern führt die API dieselben Geometrieprüfungen durch wie der Import in der App und speichert das Ergebnis: Wird ein Loch entfernt – auch eines, das erst die Reparatur einer Selbstüberschneidung einschließt –, wird die ausgeschlossene Fläche Teil der Parzelle: Die Parzelle wird größer. Die API vertauscht Breiten- und Längengrad nie. Die Antwort beim Anlegen nennt die Codes oben in warnings ([{ "code": … }]); Rundung, entfernte Höhenangabe, entfernte doppelte Punkte sowie geschlossene oder umgedrehte Ringe werden nicht genannt. Bei einer deduplizierten Antwort ist warnings immer leer, weil diese Anfrage nichts gespeichert hat.

Idempotenz

Senden Sie dieselbe Parzelle erneut — gleicher name, gleiches country, gleiche Geometrie (verglichen nach den Qualitätsprüfungen) und gleiche supplierArticleIds —, legt die API keine zweite Parzelle an und startet keine zweite Analyse; sie antwortet mit der gespeicherten Parzelle und "deduplicated": true. Name und Land werden ohne Rücksicht auf Groß-/Kleinschreibung, Leerzeichen am Anfang und Ende sowie mehrfache Leerzeichen verglichen. Andere Felder einer Wiederholung, etwa commodityGroup oder size, werden nicht übernommen. Die Antwort enthält "updated": true, wenn Erzeuger, Produktionsdaten oder Holzarten der Wiederholung übernommen wurden, sonst false; wurde eine neue Parzelle angelegt, fehlt das Feld. Auch die Wiederholung einer Parzelle, die vor Einführung dieser Prüfungen gespeichert wurde, wird erkannt: Verglichen wird zusätzlich die Geometrie genau so, wie sie gesendet wurde.

Geometrie prüfen, ohne eine Parzelle anzulegen

POST /api/v1/plots/validate nimmt denselben Body wie das Anlegen und führt dieselben Prüfungen durch, schreibt aber nichts — keine Parzelle, keine Analyse (Probelauf). plots:read genügt, und commodityGroup ist optional. Eine Anfrage, die das Anlegen mit einem code ablehnen würde, erhält 200 mit valid: false und diesem Code; ein Body, der kein JSON ist, erhält 400. valid sagt, ob das Anlegen die Anfrage annehmen würde, abgesehen von den unten unter „Nicht geprüft” genannten Punkten. Für ein Polygon mit einem Loch, mit 6 Nachkommastellen geschrieben:
geometry ist die Geometrie, die das Anlegen speichern würde, measuredAreaHa ihre Fläche — 3,1 ha statt der 2,68 ha des Polygons mit Loch; null bei Punkten. Bei valid: false enthält errors den code und die message, mit denen das Anlegen antworten würde, geometry und measuredAreaHa sind null, und precision ist null, wenn die Anfrage abgelehnt wurde, bevor die Genauigkeit gemessen war. Der Probelauf gibt der Flächengrenze für Punkte und einer ungültigen size einen Code (plot_point_area_too_large, plot_size_invalid); das Anlegen antwortet darauf ohne Code. Nicht geprüft wird, ob commodityGroup ohne supplierArticleIds fehlt (das Anlegen antwortet mit plot_commodity_group_required), ob die supplierArticleIds zu Ihrem Unternehmen gehören und ob dieselbe Parzelle schon existiert.

Status abfragen

Fragen Sie alle 15 bis 30 Sekunden ab, solange der Status pending oder in_progress ist. Die App setzt für diese Endpunkte kein Rate-Limit je Schlüssel. Ist die Analyse failed oder skipped, können Sie die Parzelle in der App über Neu analysieren erneut analysieren lassen (siehe Parzellen verwalten). Nach Neu analysieren behält der Status seinen bisherigen Wert, bis die Analyse startet.

Ergebnis lesen

analysis enthält das zuletzt gespeicherte Ergebnis. Es ist null, wenn nie eines gespeichert wurde oder nachdem die Geometrie geändert wurde. Während eine erneute Analyse läuft (in_progress) oder nachdem eine erneute Analyse fehlgeschlagen ist, kann es noch das vorherige Ergebnis enthalten — vergleichen Sie assessedAt. Die Texte sind Englisch und wortgleich mit dem Parzellenbericht.
Weitere riskLevel-Werte können hinzukommen; behandeln Sie einen unbekannten Wert als prüfbedürftig. Die Namen in evidence[].dataset sind stabil (JRC GFC 2020, Hansen GFC, GFW alerts, JRC TMF AnnualChange und JRC GFT 2020 nur bei wood); measurementStatus, observation und relevance sind für Menschen gedacht, ihr Wortlaut kann sich ändern — werten Sie sie nicht maschinell aus.

Risikostufen

Das Ergebnis ist eine georäumliche Risikobewertung, keine eigenständige Feststellung der EUDR-Konformität.
Die bisherige Kennzahl deforestationRiskResult ist 0 niedrig (steht auch bei exempt), 1 hoch, 2 mittel oder null ohne Ergebnis (pending, skipped, failed einschließlich INVALID); während einer erneuten Analyse oder nach einer fehlgeschlagenen erneuten Analyse kann sie noch den vorherigen Wert enthalten. Maßgeblich für die Auswertung sind analysisStatus und analysis.

Parzellenbericht (PDF)

GET /api/v1/plots/{id}/report liefert den Parzellenbericht als PDF-Anhang. Er ist Englisch und enthält dieselben Nachweiszeilen wie analysis.evidence. Der Dateiname ist plot-report-<name>.pdf; jedes Zeichen außer Buchstaben, Ziffern, _ und - wird zu _ (plot-report-plot.pdf ohne Namen).
Jeder Aufruf erzeugt den Bericht neu. Laden Sie ihn einmal herunter, sobald das Ergebnis vorliegt — fragen Sie den Status über GET /api/v1/plots/{id} ab, nicht über den Bericht.

Fehlercodes

Abgelehnte Anfragen legen nichts an. Der Body enthält error und, bei den Fällen unten, einen maschinenlesbaren code:
plot_geometry_too_many_members, plot_geometry_bbox_spread_too_wide und plot_geometry_area_too_large enthalten limit und actual in derselben Einheit (Teile, Grad, Hektar); teilen Sie in mehrere Parzellen auf. Bei plot_geometry_too_many_vertices vereinfachen Sie die Geometrie. Ohne code antworten: 400, wenn der Body kein JSON ist; 400, wenn ein Point oder MultiPoint über der Flächengrenze für seine size liegt (siehe Geometrie); 400, wenn size keine endliche Zahl ≥ 0 ist; 403, wenn ein Lieferantenartikel nicht zu Ihrem Unternehmen gehört.

Rezept: von GeoJSON zum Bericht

1

Parzelle anlegen

Die Antwort ist 201 mit der Parzelle unter created und warnings (hier leer). Übernehmen Sie created.id; bei einer Wiederholung enthält die Antwort "deduplicated": true.
2

Bis zum Ende der Analyse abfragen, dann Ergebnis lesen

Alle 15 bis 30 Sekunden, bis analysisStatus nicht mehr pending oder in_progress ist; das Ergebnis steht dann in analysis:
3

Bericht herunterladen