Skip to content

JuliaGeo/Geo.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 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

Code of conduct

Stars

2 stars

Watchers

9 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages