The JuliaGeo GitHub organization serves as a focal point for developing and maintaining the next generation of tooling for geospatial analysis. It aims to leverage the intuitive syntax and high-performance of the Julia language to provide robust, efficient, and easy-to-use tools for working with geographic data.
JuliaGeo fosters a collaborative environment for creating a comprehensive geospatial toolkit within the Julia ecosystem. Communication is mostly done on:
- Julia Geo Discourse for general questions on the JuliaGeo ecosystem
- Slack #geo for more short-lived interaction.
Feel free to create issues and/or PRs on packages.
Most geospatial analysis can be accomplished with these three packages (in combination with extensions as needed):
-
Rasters.jl provides a powerful Julia framework for reading, writing, and manipulating rasterized spatial data, such as satellite imagery or climate model outputs. It offers a standardized interface to work with various data formats and in-memory arrays through Raster, RasterStack, and RasterSeries types, simplifying complex geospatial workflows. Rasters.jl provides significant performance gains over similar packages in other languages.
-
GeoDataFrames.jl enables the handling of geospatial vector data in Julia by integrating geometric operations directly within DataFrame structures, inspired by Python's GeoPandas. It achieves this by treating a vector of geometries as a column, allowing for intuitive spatial data manipulation and analysis alongside tabular attributes.
-
GeometryOps.jl provides a suite of highly efficent geometric operations for vector data (i.e. points, lines, polygons), designed to work seamlessly with any GeoInterface.jl compatible geometry. It aims to unify geometric calculations within the Julia ecosystem by offering pure Julia implementations of common spatial functions crucial for GIS and Earth data workflows. GeometryOps.jl provides significant performance gains over similar packages in other languages.
GeoInterface.jl serves as a Julia protocol and interface for handling geospatial data. It provides a set of traits based on the Simple Features standard, enabling the parsing, serialization, and usage of various geometries within the Julia ecosystem.
GeoFormatTypes.jl: Defines wrapper types to make it easy to pass and dispatch on geographic formats (like Well Known Text) between packages.
CommonDataModel.jl: Defines a common data model for NetCDF, GRIB, Zarr, and GeoTIFF datasets.
See Makie and Plots.jl for general purpose plotting.
Tyler.jl for displaying tiled maps interactively with Makie.
GeoMakie.jl for geographic plotting utilities using Makie.
NCDatasets.jl: For working with NetCDF files, a common format for scientific data, including climate and oceanographic data. (Also NetCDF.jl exists).
GeoJSON.jl: Offers utilities for reading, writing, and manipulating GeoJSON data, a widely used open standard format for encoding geographic data structures.
Shapefile.jl: Enables the reading and writing of ESRI Shapefiles, a common vector data format in GIS.
GeoParquet.jl: Facilitates working with geospatial data stored in Parquet files.
LazIO: Enables the reading and writing of Laz files.
STAC.jl: SpatioTemporal Asset Catalogs (STAC) client in Julia
FlatGeobuf.jl: A native flatgeobuf implementation in Julia
ArchGDAL.jl A complete solution for working with GDAL in Julia.
GDAL.jl: A Julia wrapper for the powerful Geospatial Data Abstraction Library (GDAL), enabling the reading and writing of a vast array of raster and vector geospatial data formats.
LibGEOS.jl: A wrapper for the GEOS (Geometry Engine - Open Source) library, offering a wide range of geometry operations.
Proj.jl: A Julia wrapper for the PROJ library, which is a standard for coordinate transformations and cartographic projections. (Note: Proj4.jl was an older version, with Proj.jl being the more current wrapper).
MapTiles.jl: For working with tiled web maps.
GADM.j: Provides access to the GADM dataset of global administrative areas.
NaturalEarth.jl Interface to the Natural Earth dataset.
GeoDatasets.jl Access to common geographic datasets.
SpaceLiDAR.jl Utilities for accessing and working with satellite altimetry data (i.e. ICESat, ICESat-2, GEDI)
Geomorphometry.jl Geospatial operations, cost and filtering algorithms as used for elevation rasters.
Geodesy.jl: Provides tools for working with points defined in various coordinate systems (e.g., LLA, ECEF, ENU) and performing geodetic calculations.
SortTileRecursiveTree.jl An Sort-Tile-Recursive (SRT) tree implementation for GeoInterface compatible geometries.