[ANN] GeoIO.jl - Load/save geospatial data in Julia

GeoIO.jl uses various backend packages spread across different Julia organizations to load a universal representation of geospatial data as discussed in the book Geospatial Data Science with Julia.

The current list of supported formats can be obtained with:

julia> using GeoIO

julia> GeoIO.formats()
┌───────────┬───────────────┬───────────────┐
│ extension │     load      │     save      │
├───────────┼───────────────┼───────────────┤
│ .geojson  │  GeoJSON.jl   │  GeoJSON.jl   │
│   .gpkg   │  ArchGDAL.jl  │  ArchGDAL.jl  │
│  .gslib   │  GslibIO.jl   │  GslibIO.jl   │
│   .jpeg   │  ImageIO.jl   │  ImageIO.jl   │
│   .jpg    │  ImageIO.jl   │  ImageIO.jl   │
│   .kml    │  ArchGDAL.jl  │               │
│ .parquet  │ GeoParquet.jl │ GeoParquet.jl │
│   .ply    │   PlyIO.jl    │               │
│   .png    │  ImageIO.jl   │  ImageIO.jl   │
│   .shp    │ Shapefile.jl  │ Shapefile.jl  │
│   .tif    │  ImageIO.jl   │  ImageIO.jl   │
│   .tiff   │  ImageIO.jl   │  ImageIO.jl   │
│   .vtp    │  ReadVTK.jl   │               │
│   .vtu    │  ReadVTK.jl   │               │
└───────────┴───────────────┴───────────────┘

Many other formats are being added. If you would like to help, check the list here.

If you are good at reducing pre-compilation time of Julia packages, we highly appreciate your help here.

20 Likes

GeoIO.jl v1.4.0

Added support to load/save all non-parallel VTK formats with ReadVTK.jl and WriteVTK.jl: .vtu, .vtp, .vts, .vtr, .vti

Needs more testing, but the release is out.

3 Likes

GeoIO.jl v1.8.0

Added support to load/save STL files with triangle meshes and NetCDF and GRIB files with NCDatasets.jl and GRIBDatasets.jl

4 Likes

GeoIO.jl v1.12

Added support to load/save OBJ, OFF and MSH files with unstructured meshes, and GeoTIFF with lazy transformed grids.

2 Likes

GeoIO.jl v1.14

GeoJSON files are now loaded with native coordinate reference system (CRS) from CoordRefSystems.jl:

Closer look:

image

1 Like

GeoIO.jl v1.15

Shapefiles are now loaded with native Julia CRS, assuming ESRI WKT or OGC WKT 2 string formats.

4 Likes

GeoIO.jl v1.16

The fix option in GeoIO.load was replaced by repair as explained in the new docstring. The option can be set to false if repairing geometries by default is not desired (e.g., large geotables).

All repairs are now implemented using Repair transforms from Meshes.jl

3 Likes

GeoTIFF files are now loaded with native Julia CRS, assuming a projected coordinate system (e.g., Mercator, UTM, etc.). Geographic coordinates are not supported yet.

1 Like

GeoIO.jl v1.16.5

All GeoTIFF files are now loaded with native Julia CRS, including those with a geographic coordinate system.

Cross-posting a concrete example:

GeoIO.jl v1.17

New option lenunit to specify the unit of coordinates in file formats that don’t include units in their specs (e.g., obj, msh, off, stl)

GeoIO.jl v1.18

The option lenunit is now available in all backends.

Breaking

Predefined columns in specific backends are now lowercase.

Example: COLOR → color, DATA → data

1 Like

GeoIO.jl v1.18.1

All file formats of the CommonDataModel.jl are now loaded with native Julia CRS. This includes the NetCDF format with CF conventions.

1 Like

GeoIO.jl v1.19

GeoTIFF files are now loaded with native Julia code.

1 Like