File conversion

EUDR-ready GeoJSON converter

Spreadsheet points or KML/KMZ contours in, a Type II FeatureCollection out. Validated against EUDR technical format requirements — not a TRACES filing, not a deforestation-free certificate.

No account on the public uploader. Guest jobs stay within five conversions and 250 MB per day. Business rates start at €0.80/GB for OST → PST.

Talk to the AI — it replies
IACOPO

Describe what you want, then continue to convert.

What this conversion does

CSV and XLSX become Point features. Contours come from KML, KMZ or GeoJSON. Legacy .xls is not accepted — save as .xlsx or .csv. The output is a ZIP with eudr-valid.geojson, errors.csv and a versioned validation report.

ProducerCountry is required (ISO 3166-1 alpha-2, plus XK for Kosovo as a Densem extension, unverified on TRACES). Put it in the file, or set it on this page / write producer_country:CI in the intent. That value is an assertion and a fallback if the file has no country; a different country in the file is rejected and never overwritten. Coordinates stay in WGS84 decimal degrees. We do not reproject Lambert-93 or Web Mercator.

Type II rules we check

The 4 ha Point rule depends on the commodity: cattle / bovins / bovine skips it; cacao, coffee, wood, soy, rubber or palm rejects Points over 4 ha. If the Point is over 4 ha and the commodity is not stated, conversion does not pass. Cattle conversions reject Polygon and MultiPolygon; cattle establishments are points. If the commodity is not stated, Polygon and MultiPolygon are rejected. A cattle column in the spreadsheet is ignored and is never written to GeoJSON. Missing Area is a warning, never defaulted to 4 ha. ProductionPlace stays optional. Polygons must be closed, without holes or self-intersections. Geometries that collapse at 6 decimal places are rejected. Coordinates are written with at least 6 decimal places, using the same 6-decimal shadow as validation; we do not reject a JSON number that Python stored as 5.1. XK emits a warning as a Densem country-code extension, not a TRACES verification.

The generated GeoJSON may be at most 25,000,000 bytes (equality is allowed). This is Densem's maximum on the generated GeoJSON, not the full size accounting of a due diligence statement. We do not split files. Semicolon- or tab-separated CSV uses a decimal comma (0,125). Comma-separated CSV still rejects 1,234 as an ambiguous thousands separator. Extra Type II-unknown properties such as plot_id are kept. Area written as text in GeoJSON or an Excel text cell is converted to a number. Closing an open ring is also repaired.

Where the file is processed

The upload is converted in an isolated worker, then offered for download. Guest files follow the same retention as other Densem conversions and are deleted afterwards. Coordinates and producer names are not written to application logs.

This is the same account and quota as other Convert tasks. There is no separate EUDR subscription.

Questions

Does this submit a due diligence statement to TRACES?

No. It produces EUDR-ready GeoJSON validated against the technical format. You still file in the Information System yourself.

Can I upload a shapefile or an .xls workbook?

Not in this version. Use CSV or XLSX for points, or KML/KMZ/GeoJSON for polygons. Save legacy .xls as .xlsx first.

How do I set the commodity and the producer country?

Use the commodity and producer-country controls, or add commodity:cattle / commodity:non-cattle and producer_country:CI to the intent. Cocoa, coffee, wood, soy, rubber and palm map to non-cattle. A country on this page is an assertion and fallback, never an overwrite. You can still put country / country_code / ProducerCountry on each feature (including KML ExtendedData).

What if some rows fail?

Valid features go in eudr-valid.geojson. Rejected rows are listed in errors.csv. If none are valid, the conversion fails and nothing is presented as importable.