Get involved
Communcation is mostly done on the Julia Discourse. More short-lived interaction is found on Julia Slack #geo. Feel free to create issues, PRs on packages.
Talks
- FOSS4G 2019 Bucharest by Martijn Visser and Maarten Pronk. JuliaGeo: A Fresh Approach to Geospatial Computing. Video, Slides.
GitHub organizations
The JuliaGeo GitHub organization is intended primarily for the collaborative development of packages that are generally applicable across the geospatial and geosciences domains. For dealing with geospatial data, packages from the JuliaGeometry and JuliaImages organizations may also be of interest, and we will aim for good integration with those. Since the JuliaGeo organization aims to provide mostly general tools, more domain specific packages may be better suited for development in domain specific organizations. JuliaClimate is a nice example of such an organization that will be especially interesting to climate, atmosphere and ocean scientists. EcoJulia also provides some tools for generating and downloading spatial data sets, with a focus on ecological applications.
Packages
Here’s a partial listing of some of the existing libraries in Julia that you can use for working with geospatial data. Not all of them are listed under the JuliaGeo organization, but some of them might get moved over.
Wrappers for external libraries
Using the excellent BinaryBuilder.jl we provide prebuilt binaries for most external libraries.
- LibGEOS.jl is a wrapper to GEOS for performing geospatial operations on vector geometries.
- Proj.jl is a wrapper to PROJ for performing cartographic projections.
- GDAL.jl is a wrapper to GDAL (Geospatial Data Abstraction Library) for reading and writing raster and vector datasets; ArchGDAL.jl builds on top of GDAL.jl for a more Julian user experience. GeoArrays.jl builds on top of both to provide the easiest, but simplest experience.
- Rasters.jl defines common types and methods for reading, writing and manipulating rasterized spatial data.
- NetCDF.jl and NCDatasets.jl provides a high-level and a medium-level interface for writing and reading netcdf files.
- GeoDataFrames.jl provides simple geographical vector interaction built on top of ArchGDAL with a Tables.jl interface.
- GMT.jl provides a wrapper for working with the Generic Mapping Tools (GMT) library in julia.
- LibSpatialIndex.jl provides functionality for spatially indexing kD bounding box data (based on libspatialindex).
Native Julia libraries
- GeoInterface.jl defines a common interface for vector operations, and traits to support interoperability between different geometry types
- Geodesy.jl supports working with points defined in different coordinate systems, with support for LLA/ENU/ECEF.
- CoordinateTransformations.jl manages simple or complex networks of coordinate system transformations.
- Shapefile.jl reads ESRI Shapefiles.
- GeoJSON.jl reads and writes GeoJSON.
- NearestNeighbors.jl is Julia package to perform high performance nearest neighbor searches in arbitrarily high dimensions. It uses Kd-trees.
- SpatialIndexing.jl provides a native RTree implementation.
- RegionTrees.jl provides Quadtrees, Octrees and their N-Dimensional cousins.
- GeoStats.jl is an extensible Julia framework for high-performance geostatistics
- Turf.jl A spatial analysis library written in Julia, ported from the great Turf.js
- RasterDataSources.jl Simplifies downloads of environmental raster data like WorldClim, EarthEnv and CHELSA.
Other Projects
- OpenStreetMapX.jl provides basic functionality for parsing, viewing, and working with OpenStreetMap map data.
- LasIO.jl is native Julia package for working with .las pointcloud data. LazIO.jl does the same for compressed .laz pointcloud data.
- GeoMakie.jl adds cartography to the Makie.jl plotting package.
- OSMMakie.jl is a Makie.jl recipe for plotting OpenStreetMap data. It works on top of LightOSM.jl and currently provides basic functionality to plot all kinds of ways and buildings.