A comprehensive meta package for the JuliaGeo ecosystem that provides easy access to the complete suite of geospatial data processing tools in Julia.
Geo.jl is a meta package that aggregates the entire JuliaGeo ecosystem, making it simple to install and use all the essential geospatial libraries in Julia with a single package installation. Instead of manually installing many individual packages, Geo.jl provides a curated collection of compatible, well-tested geospatial tools.
Geo.jl brings together 10+ specialized geospatial packages, organized by functionality:
- ArchGDAL - GDAL bindings for reading/writing geospatial data formats
- GeoInterface - Common interface for geospatial data types
- GeometryOps - Geometric operations and algorithms
- LibGEOS - High-performance geometric operations engine
- Proj - Coordinate reference system transformations
- DimensionalData - Multi-dimensional labeled arrays
- Extents - Spatial extents and bounding boxes
- Rasters - Raster data handling and analysis
- GeoDataFrames - Geospatial data frames (vector data)
- GeoJSON - GeoJSON format support
- GeoParquet - Parquet format for geospatial data
- Shapefile - ESRI Shapefile support
- NCDatasets - NetCDF data support
- ZarrDatasets - Zarr format support
- WellKnownGeometry - WKT/WKB geometry support
- GeoFormatTypes - Type definitions for geospatial formats
- CommonDataModel - Common data model for scientific data
using Pkg
# install packages into your current environment
Pkg.add("Geo") # add Geo
Pkg.add("CairoMakie") # add Plotting# load a module
using Geo
using CairoMakie
# url to example raster file
path2raster = "https://github.com/rasterio/rasterio/raw/9953b28225db3b01193c94b1442d34b828d374aa/tests/data/RGB2.byte.tif"
# Load a raster
ras = Geo.Raster(path2raster)
┌ 791×718×3 Raster{UInt8, 3} ┐
├────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────── dims ┐
↓ X Projected{Float64} 101985.0:300.0379266750948:339014.9620733249 ForwardOrdered Regular Intervals{Start},
→ Y Projected{Float64} 2.82661495821727e6:-300.04178272980505:2.611485e6 ReverseOrdered Regular Intervals{Start},
↗ Band Categorical{Int64} 1:3 ForwardOrdered
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── metadata ┤
Metadata{Rasters.GDALsource} of Dict{String, Any} with 1 entry:
"filepath" => "/vsicurl/https://github.com/rasterio/rasterio/raw/9953b28225db3b01193c94b1442d34b828d374aa/tests/data/RGB2.byte.tif"
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── raster ┤
extent: Extent(X = (101985.0, 339315.0), Y = (2.611485e6, 2.826915e6), Band = (1, 3))
crs: PROJCS["UTM Zone 18, Northern Hemisphere",GEOGCS["Unknown datum based upon the WGS 84 ellipsoid",DATUM["Not_specified_based_on_...
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
[:, :, 1]
⋮ ⋱ Plot Raster
heatmap(ras)path2vector = "https://github.com/martynafford/natural-earth-geojson/raw/refs/heads/master/10m/physical/ne_10m_coastline.json"
gdf = Geo.GeoDataFrames.read(path2vector)
Row │ geometry featurecla scalerank min_zoom
│ IGeometr… String Int32 Float64
──────┼──────────────────────────────────────────────────────────
1 │ Geometry: wkbLineString Coastline 0 0.0
2 │ Geometry: wkbLineString Coastline 0 0.0
3 │ Geometry: wkbLineString Coastline 6 5.0
⋮ │ ⋮ ⋮ ⋮ ⋮
4132 │ Geometry: wkbLineString Coastline 6 0.5
4133 │ Geometry: wkbLineString Coastline 6 4.0
4128 rows omittedPlot geometry
plot(gdf.geometry)
## Key Benefits
- **One-Command Setup**: Install all geospatial tools with a single `Pkg.add("Geo")`
- **Compatibility Guaranteed**: All packages are tested for compatibility
- **Version Management**: Carefully curated version constraints prevent conflicts
- **Complete Ecosystem**: Access to the full JuliaGeo toolkit
- **Easy Updates**: Update all geospatial packages together

