Skip to content

JuliaGeo/Geo.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Geo.jl

Stable Dev

Build Status Coverage Julia

A comprehensive meta package for the JuliaGeo ecosystem that provides easy access to the complete suite of geospatial data processing tools in Julia.

Overview

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.

What's Included

Geo.jl brings together 10+ specialized geospatial packages, organized by functionality:

Core Geospatial Libraries

  • 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

Data Structures & Processing

  • DimensionalData - Multi-dimensional labeled arrays
  • Extents - Spatial extents and bounding boxes
  • Rasters - Raster data handling and analysis
  • GeoDataFrames - Geospatial data frames (vector data)

File Format Support

  • 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

Additional Tools

  • GeoFormatTypes - Type definitions for geospatial formats
  • CommonDataModel - Common data model for scientific data

Installation

using Pkg
# install packages into your current environment
Pkg.add("Geo")          # add Geo
Pkg.add("CairoMakie")   # add Plotting

Quick Start

Raster data

# 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)

Geo raster heatmap

Vector data

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 omitted

Plot geometry

plot(gdf.geometry)

Geo vector plot


## 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

About

Meta package to load all composable packages in the JuliaGeo ecosystem

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages