Examples ======== This page provides comprehensive examples covering all features of geoextent using datasets under 100MB for fast execution. Remote Repository Examples --------------------------- Geoextent supports extracting geospatial extent from multiple research data repositories. Zenodo Example ^^^^^^^^^^^^^^ Extract extent from a Zenodo atmospheric data repository (~50MB): :: python -m geoextent -b -t https://doi.org/10.5281/zenodo.4593540 Or using just the DOI: :: python -m geoextent -b -t 10.5281/zenodo.4593540 PANGAEA Example ^^^^^^^^^^^^^^^ Extract extent from PANGAEA Arctic Ocean dataset (~1MB): :: python -m geoextent -b -t https://doi.org/10.1594/PANGAEA.734969 PANGAEA datasets often include rich geospatial metadata. OSF Example ^^^^^^^^^^^ Extract extent from OSF geographic research data (~5MB): :: python -m geoextent -b -t https://doi.org/10.17605/OSF.IO/4XE6Z Multiple OSF identifier formats are supported: :: python -m geoextent -b -t OSF.IO/4XE6Z python -m geoextent -b -t https://osf.io/4xe6z/ GFZ Data Services Example ^^^^^^^^^^^^^^^^^^^^^^^^^^ Extract extent from GFZ geothermal resources dataset (~30MB): :: python -m geoextent -b -t 10.5880/GFZ.4.8.2023.004 Dryad Example ^^^^^^^^^^^^^ Extract extent from Dryad dataset: :: python -m geoextent -b -t https://datadryad.org/stash/dataset/doi:10.5061/dryad.0k6djhb7x Advanced Features ----------------- Convex Hull Extraction ^^^^^^^^^^^^^^^^^^^^^^ Calculate the convex hull instead of just the bounding box for vector files: :: python -m geoextent -b --convex-hull https://doi.org/10.5281/zenodo.4593540 This provides a more accurate representation of the actual spatial extent. Placename Lookup ^^^^^^^^^^^^^^^^ Add geographic context to your extracts: :: # Using default GeoNames gazetteer (requires API key in .env) python -m geoextent -b --placename https://doi.org/10.5281/zenodo.4593540 # Using Nominatim (no API key needed) python -m geoextent -b --placename nominatim https://doi.org/10.1594/PANGAEA.734969 # Using Photon (no API key needed) python -m geoextent -b --placename photon https://osf.io/4xe6z/ Size Limiting ^^^^^^^^^^^^^ Control download size when processing large repositories: :: # Limit to 10MB total download python -m geoextent -b --max-download-size 10MB https://doi.org/10.5281/zenodo.4593540 # Random sampling with seed for reproducibility python -m geoextent -b --max-download-size 50MB --max-download-method random --max-download-method-seed 42 https://doi.org/10.5281/zenodo.4593540 File Filtering ^^^^^^^^^^^^^^ Skip non-geospatial files to save time: :: python -m geoextent -b --download-skip-nogeo https://doi.org/10.5281/zenodo.4593540 Combine with size limits: :: python -m geoextent -b --download-skip-nogeo --max-download-size 50MB https://osf.io/4xe6z/ Output Formats ^^^^^^^^^^^^^^ Choose different output formats: :: # Default GeoJSON format python -m geoextent -b https://doi.org/10.1594/PANGAEA.734969 # Well-Known Text (WKT) format python -m geoextent -b --format wkt https://doi.org/10.1594/PANGAEA.734969 # Well-Known Binary (WKB) hex format python -m geoextent -b --format wkb https://doi.org/10.1594/PANGAEA.734969 Visualization ^^^^^^^^^^^^^ Generate geojson.io URLs for interactive visualization: :: python -m geoextent -b --geojsonio https://doi.org/10.5281/zenodo.4593540 Combine with convex hull: :: python -m geoextent -b --convex-hull --geojsonio https://doi.org/10.1594/PANGAEA.734969 Quiet Mode ^^^^^^^^^^ Suppress progress bars and warnings for scripting: :: python -m geoextent -b --quiet https://doi.org/10.1594/PANGAEA.734969 Perfect for shell scripts: :: BBOX=$(python -m geoextent -b --format wkt --quiet https://doi.org/10.1594/PANGAEA.734969) echo "Bounding box: $BBOX" Local File Examples ------------------- Single File Processing ^^^^^^^^^^^^^^^^^^^^^^ Extract from GeoJSON: :: python -m geoextent -b -t tests/testdata/geojson/muenster_ring_zeit.geojson Extract from CSV: :: python -m geoextent -b -t tests/testdata/csv/cities_NL.csv Extract from Shapefile: :: python -m geoextent -b -t tests/testdata/shapefile/muenster_ring.shp Directory Processing ^^^^^^^^^^^^^^^^^^^^ Process all files in a directory: :: python -m geoextent -b -t tests/testdata/geojson/ With convex hull: :: python -m geoextent -b --convex-hull tests/testdata/geojson/ Multiple Files ^^^^^^^^^^^^^^ Process specific files together: :: python -m geoextent -b -t tests/testdata/shapefile/muenster_ring.shp tests/testdata/csv/cities_NL.csv Combined Examples ----------------- All Features Together ^^^^^^^^^^^^^^^^^^^^^ Extract with all features enabled: :: python -m geoextent -b -t \ --convex-hull \ --placename nominatim \ --max-download-size 50MB \ --download-skip-nogeo \ --format wkt \ --geojsonio \ https://doi.org/10.5281/zenodo.4593540 Multiple Repositories ^^^^^^^^^^^^^^^^^^^^^^ Process multiple repositories together: :: python -m geoextent -b \ --max-download-size 20MB \ https://doi.org/10.5281/zenodo.4593540 \ https://doi.org/10.1594/PANGAEA.734969 \ https://osf.io/4xe6z/ Docker Examples --------------- Basic Docker Usage ^^^^^^^^^^^^^^^^^^ Using Docker for remote repositories: :: docker run --rm geoextent -b https://doi.org/10.5281/zenodo.4593540 With placename lookup: :: docker run --rm --env-file .env geoextent -b --placename https://doi.org/10.5281/zenodo.4593540 Local files with Docker: :: docker run --rm -v ${PWD}/tests/testdata:/data geoextent -b -t /data/geojson/ Performance Options ------------------- Parallel Downloads ^^^^^^^^^^^^^^^^^^ Control download workers: :: # Use 8 parallel workers python -m geoextent -b --max-download-workers 8 https://doi.org/10.5281/zenodo.4593540 # Sequential downloads (slower but safer) python -m geoextent -b --max-download-workers 1 https://doi.org/10.5281/zenodo.4593540 Testing Examples ---------------- Quick Repository Exploration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Explore a repository with minimal download: :: python -m geoextent -b \ --max-download-size 5MB \ --max-download-method random \ --quiet \ https://doi.org/10.5281/zenodo.4593540 Format Coverage Examples ------------------------ These examples demonstrate all supported formats using small datasets: GeoJSON ^^^^^^^ :: python -m geoextent -b -t tests/testdata/geojson/muenster_ring_zeit.geojson CSV ^^^ :: python -m geoextent -b -t tests/testdata/csv/cities_NL.csv Shapefile ^^^^^^^^^ :: python -m geoextent -b tests/testdata/shapefile/muenster_ring.shp GeoTIFF ^^^^^^^ :: python -m geoextent -b tests/testdata/tif/wf_100m_klas.tif GeoPackage ^^^^^^^^^^ :: python -m geoextent -b tests/testdata/geopackage/nc.gpkg GPX ^^^ :: python -m geoextent -b -t tests/testdata/gpx/gpx1.1_with_all_fields.gpx KML ^^^ :: python -m geoextent -b tests/testdata/kml/aasee.kml GML ^^^ :: python -m geoextent -b tests/testdata/gml/clc_1000_PT.gml FlatGeobuf ^^^^^^^^^^ :: python -m geoextent -b tests/testdata/flatgeobuf/sample.fgb Repository Provider Coverage ---------------------------- All Supported Providers ^^^^^^^^^^^^^^^^^^^^^^^ Examples for each repository provider: Zenodo: :: python -m geoextent -b https://doi.org/10.5281/zenodo.4593540 Figshare: :: python -m geoextent -b https://doi.org/10.6084/m9.figshare.12345678 Dryad: :: python -m geoextent -b https://datadryad.org/stash/dataset/doi:10.5061/dryad.0k6djhb7x PANGAEA: :: python -m geoextent -b https://doi.org/10.1594/PANGAEA.734969 OSF: :: python -m geoextent -b https://doi.org/10.17605/OSF.IO/4XE6Z GFZ Data Services: :: python -m geoextent -b 10.5880/GFZ.4.8.2023.004 Dataverse: :: python -m geoextent -b https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/12345 Pensoft: :: python -m geoextent -b https://doi.org/10.3897/BDJ.2.e1068