Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
169 changes: 78 additions & 91 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,91 +1,78 @@
### Get involved
Communcation is mostly done on the Julia
[Discourse](https://discourse.julialang.org/c/domain/geo). More short-lived interaction is
found on Julia [Slack #geo](https://julialang.org/slack/). Feel free to create issues, PRs
on packages.

### Talks
- FOSS4G 2019 Bucharest by [Martijn Visser](https://github.com/visr) and [Maarten
Pronk](https://github.com/evetion). JuliaGeo: A Fresh Approach to Geospatial Computing.
[Video](https://media.ccc.de/v/bucharest-428-juliageo-a-fresh-approach-to-geospatial-computing),
[Slides](https://nextjournal.com/juliageo/foss4g-2019).

### GitHub organizations
The [JuliaGeo](https://github.com/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](https://github.com/JuliaGeometry) and
[JuliaImages](https://github.com/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](https://github.com/JuliaClimate) is a nice
example of such an organization that will be especially interesting to climate, atmosphere
and ocean scientists. [EcoJulia](https://github.com/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](https://julialang.org/) 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](https://binarybuilder.org/) we provide prebuilt
binaries for most external libraries.
- [LibGEOS.jl](https://github.com/JuliaGeo/LibGEOS.jl) is a wrapper to GEOS for performing
geospatial operations on vector geometries.
- [Proj.jl](https://github.com/JuliaGeo/Proj.jl) is a wrapper to PROJ for performing
cartographic projections.
- [GDAL.jl](https://github.com/JuliaGeo/GDAL.jl) is a wrapper to GDAL (Geospatial Data
Abstraction Library) for reading and writing raster and vector datasets;
[ArchGDAL.jl](https://github.com/yeesian/ArchGDAL.jl) builds on top of GDAL.jl for a more
Julian user experience. [GeoArrays.jl](https://github.com/evetion/GeoArrays.jl) builds on
top of both to provide the easiest, but simplest experience.
- [Rasters.jl](https://github.com/rafaqz/Rasters.jl) defines common types and methods for
reading, writing and manipulating rasterized spatial data.
- [NetCDF.jl](https://github.com/JuliaGeo/NetCDF.jl) and
[NCDatasets.jl](https://github.com/Alexander-Barth/NCDatasets.jl) provides a high-level
and a medium-level interface for writing and reading netcdf files.
- [GeoDataFrames.jl](https://github.com/evetion/GeoDataFrames.jl) provides simple
geographical vector interaction built on top of ArchGDAL with a Tables.jl interface.
- [GMT.jl](https://github.com/joa-quim/GMT.jl) provides a wrapper for working with the
Generic Mapping Tools (GMT) library in julia.
- [LibSpatialIndex.jl](https://github.com/JuliaGeo/LibSpatialIndex.jl) provides
functionality for spatially indexing kD bounding box data (based on
[libspatialindex](https://github.com/libspatialindex/libspatialindex)).

#### Native Julia libraries
- [GeoInterface.jl](https://github.com/JuliaGeo/GeoInterface.jl) defines a common interface
for vector operations, and traits to support interoperability between different geometry
types
- [Geodesy.jl](https://github.com/JuliaGeo/Geodesy.jl) supports working with points defined
in different coordinate systems, with support for LLA/ENU/ECEF.
- [CoordinateTransformations.jl](https://github.com/JuliaGeometry/CoordinateTransformations.jl)
manages simple or complex networks of coordinate system transformations.
- [Shapefile.jl](https://github.com/JuliaGeo/Shapefile.jl) reads ESRI Shapefiles.
- [GeoJSON.jl](https://github.com/JuliaGeo/GeoJSON.jl) reads and writes GeoJSON.
- [NearestNeighbors.jl](https://github.com/KristofferC/NearestNeighbors.jl) is Julia package
to perform high performance nearest neighbor searches in arbitrarily high dimensions. It
uses Kd-trees.
- [SpatialIndexing.jl](https://github.com/alyst/SpatialIndexing.jl) provides a native RTree
implementation.
- [RegionTrees.jl](https://github.com/rdeits/RegionTrees.jl) provides Quadtrees, Octrees and
their N-Dimensional cousins.
- [GeoStats.jl](https://github.com/JuliaEarth/GeoStats.jl) is an extensible Julia framework
for high-performance geostatistics
- [Turf.jl](https://github.com/philoez98/Turf.jl) A spatial analysis library written in
Julia, ported from the great [Turf.js](https://turfjs.org/)
- [RasterDataSources.jl](https://github.com/EcoJulia/RasterDataSources.jl) Simplifies
downloads of environmental raster data like WorldClim, EarthEnv and CHELSA.

#### Other Projects
- [OpenStreetMapX.jl](https://github.com/pszufe/OpenStreetMapX.jl) provides basic
functionality for parsing, viewing, and working with OpenStreetMap map data.
- [LasIO.jl](https://github.com/visr/LasIO.jl) is native Julia package for working with .las
pointcloud data. [LazIO.jl](https://github.com/evetion/LazIO.jl) does the same for
compressed .laz pointcloud data.
- [GeoMakie.jl](https://github.com/JuliaPlots/GeoMakie.jl) adds cartography to the
[Makie.jl](https://makie.juliaplots.org/stable/) plotting package.
- [OSMMakie.jl](https://github.com/fbanning/OSMMakie.jl) is a
[Makie.jl](https://makie.juliaplots.org/stable/) recipe for plotting OpenStreetMap data.
It works on top of [LightOSM.jl](https://github.com/DeloitteDigitalAPAC/LightOSM.jl) and
currently provides basic functionality to plot all kinds of ways and buildings.

## JuliaGeo
The [JuliaGeo](https://github.com/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](https://julialang.org/) to provide robust, efficient, and easy-to-use tools for working with geographic data.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The [JuliaGeo](https://github.com/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](https://julialang.org/) to provide robust, efficient, and easy-to-use tools for working with geographic data.
The [JuliaGeo](https://github.com/JuliaGeo) GitHub organization serves as a focal point for developing and maintaining *interfaces* to geospatial file formats and established geospatial libraries written in other programming languages. This webpage lists various resources to help first-time Julia programmers interested in geospatial analysis.


## Get involved
JuliaGeo fosters a collaborative environment for creating a comprehensive geospatial toolkit within the Julia ecosystem. Communication is mostly done on:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
JuliaGeo fosters a collaborative environment for creating a comprehensive geospatial toolkit within the Julia ecosystem. Communication is mostly done on:
Communication is mostly done on:

1. [Julia Geo Discourse](https://discourse.julialang.org/c/domain/geo) for general questions on the JuliaGeo ecosystem
2. [Slack #geo](https://julialang.org/slack/) for more short-lived interaction.

Feel free to create issues and/or PRs on packages.

## High-level packages
Most geospatial analysis can be accomplished with these three packages (in combination with extensions as needed):

1. [Rasters.jl](https://rafaqz.github.io/Rasters.jl/dev/) 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](https://github.com/user-attachments/assets/1c6c56ac-4c5a-4096-984d-15bf2783682c) over similar packages in other languages.

2. [GeoDataFrames.jl](https://www.evetion.nl/GeoDataFrames.jl/dev/) enables the handling of geospatial vector data in Julia by integrating geometric operations directly within DataFrame structures, inspired by Python's [GeoPandas](https://geopandas.org/en/stable/). It achieves this by treating a vector of geometries as a column, allowing for intuitive spatial data manipulation and analysis alongside tabular attributes.

3. [GeometryOps.jl](https://juliageo.org/GeometryOps.jl/dev/) provides a suite of highly efficent geometric operations for vector data (i.e. points, lines, polygons), designed to work seamlessly with any [GeoInterface.jl](https://juliageo.org/GeoInterface.jl/dev/) 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](https://github.com/JuliaGeo/GeometryOps.jl/assets/32143268/0be8672c-c90f-4e1d-81c5-8522317c5e29) over similar packages in other languages.

## Inter-package operability
[GeoInterface.jl](https://juliageo.org/GeoInterface.jl/dev/) 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](https://github.com/JuliaGeo/GeoFormatTypes.jl): Defines wrapper types to make it easy to pass and dispatch on geographic formats (like Well Known Text) between packages.

[CommonDataModel.jl](https://github.com/JuliaGeo/CommonDataModel.jl): Defines a common data model for NetCDF, GRIB, Zarr, and GeoTIFF datasets.

## Visualization
See [Makie](https://docs.makie.org/stable/) and [Plots.jl](https://docs.juliaplots.org/stable/) for general purpose plotting.

[Tyler.jl](https://github.com/MakieOrg/Tyler.jl) for displaying tiled maps interactively with [Makie](https://docs.makie.org/stable/).

[GeoMakie.jl](https://github.com/MakieOrg/GeoMakie.jl) for geographic plotting utilities using [Makie](https://docs.makie.org/stable/).


## Lower-level file I/O - native Julia
[NCDatasets.jl](https://github.com/JuliaGeo/NCDatasets.jl): For working with NetCDF files, a common format for scientific data, including climate and oceanographic data. (Also NetCDF.jl exists).

[GeoJSON.jl](https://github.com/JuliaGeo/GeoJSON.jl): Offers utilities for reading, writing, and manipulating GeoJSON data, a widely used open standard format for encoding geographic data structures.

[Shapefile.jl](https://github.com/JuliaGeo/Shapefile.jl): Enables the reading and writing of ESRI Shapefiles, a common vector data format in GIS.

[GeoParquet.jl](https://github.com/JuliaGeo/GeoParquet.jl): Facilitates working with geospatial data stored in Parquet files.

[LazIO](https://github.com/evetion/LazIO.jl): Enables the reading and writing of Laz files.

[STAC.jl](https://github.com/JuliaClimate/STAC.jl): SpatioTemporal Asset Catalogs (STAC) client in Julia

[FlatGeobuf.jl](https://github.com/evetion/FlatGeobuf.jl): A native flatgeobuf implementation in Julia

## Lower-level packages - C bindings
[ArchGDAL.jl](https://yeesian.com/ArchGDAL.jl) A complete solution for working with GDAL in Julia.

[GDAL.jl](https://github.com/JuliaGeo/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](https://github.com/JuliaGeo/LibGEOS.jl): A wrapper for the GEOS (Geometry Engine - Open Source) library, offering a wide range of geometry operations.

[Proj.jl](https://github.com/JuliaGeo/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).


## Access to geospatial datasets
[MapTiles.jl](https://github.com/JuliaGeo/MapTiles.jl): For working with tiled web maps.

[GADM.j](https://github.com/JuliaGeo/GADM.jl): Provides access to the GADM dataset of global administrative areas.

[NaturalEarth.jl](https://github.com/JuliaGeo/NaturalEarth.jl) Interface to the Natural Earth dataset.

[GeoDatasets.jl](https://github.com/JuliaGeo/GeoDatasets.jl) Access to common geographic datasets.

[SpaceLiDAR.jl](https://github.com/evetion/SpaceLiDAR.jl) Utilities for accessing and working with satellite altimetry data (i.e. ICESat, ICESat-2, GEDI)


## Geospatial analysis packages
[Geomorphometry.jl](https://deltares.github.io/Geomorphometry.jl/v0.7.0/) Geospatial operations, cost and filtering algorithms as used for elevation rasters.

[Geodesy.jl](https://github.com/JuliaGeo/Geodesy.jl): Provides tools for working with points defined in various coordinate systems (e.g., LLA, ECEF, ENU) and performing geodetic calculations.

[SortTileRecursiveTree.jl](https://github.com/asinghvi17/SortTileRecursiveTree.jl) An Sort-Tile-Recursive (SRT) tree implementation for GeoInterface compatible geometries.
Comment on lines +12 to +78
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## High-level packages
Most geospatial analysis can be accomplished with these three packages (in combination with extensions as needed):
1. [Rasters.jl](https://rafaqz.github.io/Rasters.jl/dev/) 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](https://github.com/user-attachments/assets/1c6c56ac-4c5a-4096-984d-15bf2783682c) over similar packages in other languages.
2. [GeoDataFrames.jl](https://www.evetion.nl/GeoDataFrames.jl/dev/) enables the handling of geospatial vector data in Julia by integrating geometric operations directly within DataFrame structures, inspired by Python's [GeoPandas](https://geopandas.org/en/stable/). It achieves this by treating a vector of geometries as a column, allowing for intuitive spatial data manipulation and analysis alongside tabular attributes.
3. [GeometryOps.jl](https://juliageo.org/GeometryOps.jl/dev/) provides a suite of highly efficent geometric operations for vector data (i.e. points, lines, polygons), designed to work seamlessly with any [GeoInterface.jl](https://juliageo.org/GeoInterface.jl/dev/) 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](https://github.com/JuliaGeo/GeometryOps.jl/assets/32143268/0be8672c-c90f-4e1d-81c5-8522317c5e29) over similar packages in other languages.
## Inter-package operability
[GeoInterface.jl](https://juliageo.org/GeoInterface.jl/dev/) 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](https://github.com/JuliaGeo/GeoFormatTypes.jl): Defines wrapper types to make it easy to pass and dispatch on geographic formats (like Well Known Text) between packages.
[CommonDataModel.jl](https://github.com/JuliaGeo/CommonDataModel.jl): Defines a common data model for NetCDF, GRIB, Zarr, and GeoTIFF datasets.
## Visualization
See [Makie](https://docs.makie.org/stable/) and [Plots.jl](https://docs.juliaplots.org/stable/) for general purpose plotting.
[Tyler.jl](https://github.com/MakieOrg/Tyler.jl) for displaying tiled maps interactively with [Makie](https://docs.makie.org/stable/).
[GeoMakie.jl](https://github.com/MakieOrg/GeoMakie.jl) for geographic plotting utilities using [Makie](https://docs.makie.org/stable/).
## Lower-level file I/O - native Julia
[NCDatasets.jl](https://github.com/JuliaGeo/NCDatasets.jl): For working with NetCDF files, a common format for scientific data, including climate and oceanographic data. (Also NetCDF.jl exists).
[GeoJSON.jl](https://github.com/JuliaGeo/GeoJSON.jl): Offers utilities for reading, writing, and manipulating GeoJSON data, a widely used open standard format for encoding geographic data structures.
[Shapefile.jl](https://github.com/JuliaGeo/Shapefile.jl): Enables the reading and writing of ESRI Shapefiles, a common vector data format in GIS.
[GeoParquet.jl](https://github.com/JuliaGeo/GeoParquet.jl): Facilitates working with geospatial data stored in Parquet files.
[LazIO](https://github.com/evetion/LazIO.jl): Enables the reading and writing of Laz files.
[STAC.jl](https://github.com/JuliaClimate/STAC.jl): SpatioTemporal Asset Catalogs (STAC) client in Julia
[FlatGeobuf.jl](https://github.com/evetion/FlatGeobuf.jl): A native flatgeobuf implementation in Julia
## Lower-level packages - C bindings
[ArchGDAL.jl](https://yeesian.com/ArchGDAL.jl) A complete solution for working with GDAL in Julia.
[GDAL.jl](https://github.com/JuliaGeo/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](https://github.com/JuliaGeo/LibGEOS.jl): A wrapper for the GEOS (Geometry Engine - Open Source) library, offering a wide range of geometry operations.
[Proj.jl](https://github.com/JuliaGeo/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).
## Access to geospatial datasets
[MapTiles.jl](https://github.com/JuliaGeo/MapTiles.jl): For working with tiled web maps.
[GADM.j](https://github.com/JuliaGeo/GADM.jl): Provides access to the GADM dataset of global administrative areas.
[NaturalEarth.jl](https://github.com/JuliaGeo/NaturalEarth.jl) Interface to the Natural Earth dataset.
[GeoDatasets.jl](https://github.com/JuliaGeo/GeoDatasets.jl) Access to common geographic datasets.
[SpaceLiDAR.jl](https://github.com/evetion/SpaceLiDAR.jl) Utilities for accessing and working with satellite altimetry data (i.e. ICESat, ICESat-2, GEDI)
## Geospatial analysis packages
[Geomorphometry.jl](https://deltares.github.io/Geomorphometry.jl/v0.7.0/) Geospatial operations, cost and filtering algorithms as used for elevation rasters.
[Geodesy.jl](https://github.com/JuliaGeo/Geodesy.jl): Provides tools for working with points defined in various coordinate systems (e.g., LLA, ECEF, ENU) and performing geodetic calculations.
[SortTileRecursiveTree.jl](https://github.com/asinghvi17/SortTileRecursiveTree.jl) An Sort-Tile-Recursive (SRT) tree implementation for GeoInterface compatible geometries.
## Interface packages
[GeoInterface.jl](https://juliageo.org/GeoInterface.jl/dev/) 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](https://github.com/JuliaGeo/GeoFormatTypes.jl): Defines wrapper types to make it easy to pass and dispatch on geographic formats (like Well Known Text) between packages.
[CommonDataModel.jl](https://github.com/JuliaGeo/CommonDataModel.jl): Defines a common data model for NetCDF, GRIB, Zarr, and GeoTIFF datasets.
## IO packages
[NCDatasets.jl](https://github.com/JuliaGeo/NCDatasets.jl): For working with NetCDF files, a common format for scientific data, including climate and oceanographic data. (Also NetCDF.jl exists).
[GeoJSON.jl](https://github.com/JuliaGeo/GeoJSON.jl): Offers utilities for reading, writing, and manipulating GeoJSON data, a widely used open standard format for encoding geographic data structures.
[Shapefile.jl](https://github.com/JuliaGeo/Shapefile.jl): Enables the reading and writing of ESRI Shapefiles, a common vector data format in GIS.
[GeoParquet.jl](https://github.com/JuliaGeo/GeoParquet.jl): Facilitates working with geospatial data stored in Parquet files.
## Geometry packages
[GeometryOps.jl](https://juliageo.org/GeometryOps.jl/dev/) provides a suite of highly efficent geometric operations for vector data (i.e. points, lines, polygons), designed to work seamlessly with any [GeoInterface.jl](https://juliageo.org/GeoInterface.jl/dev/) 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](https://github.com/JuliaGeo/GeometryOps.jl/assets/32143268/0be8672c-c90f-4e1d-81c5-8522317c5e29) over similar packages in other languages.
## C bindings
[GDAL.jl](https://github.com/JuliaGeo/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](https://github.com/JuliaGeo/LibGEOS.jl): A wrapper for the GEOS (Geometry Engine - Open Source) library, offering a wide range of geometry operations.
[Proj.jl](https://github.com/JuliaGeo/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).
## Datasets
[MapTiles.jl](https://github.com/JuliaGeo/MapTiles.jl): For working with tiled web maps.
[GADM.j](https://github.com/JuliaGeo/GADM.jl): Provides access to the GADM dataset of global administrative areas.
[NaturalEarth.jl](https://github.com/JuliaGeo/NaturalEarth.jl) Interface to the Natural Earth dataset.
[GeoDatasets.jl](https://github.com/JuliaGeo/GeoDatasets.jl) Access to common geographic datasets.
## Inactive packages
The following packages are not actively developed:
[Geodesy.jl](https://github.com/JuliaGeo/Geodesy.jl): Provides tools for working with points defined in various coordinate systems (e.g., LLA, ECEF, ENU) and performing geodetic calculations.
## Third-party packages
The [JuliaEarth](https://github.com/JuliaEarth) and [JuliaClimate](https://github.com/JuliaClimate) GitHub organizations develop and maintain alternative packages for geospatial work. Additional packages hosted in individual accounts are also listed in this section.
### JuliaEarth
[GeoStats.jl](https://github.com/JuliaEarth/GeoStats.jl) is an extensible framework for geospatial data science and geostatistical modeling fully written in Julia. It is comprised of several modules for advanced geometric processing, state-of-the-art geostatistical algorithms and sophisticated visualization of geospatial data.
[GeoIO.jl](https://github.com/JuliaEarth/GeoIO.jl) provides a high-level file-format-agnostic method to load and save geospatial data compatible with the GeoStats.jl framework.
[GeoArtifacts.jl](https://github.com/JuliaEarth/GeoArtifacts.jl) collects geospatial artifacts (e.g. datasets) for geospatial data science.
[CoordRefSystems.jl](https://github.com/JuliaEarth/CoordRefSystems.jl) provides unitful coordinate reference systems through a sophisticated set of type conversion rules. It supports various datums and EPSG/ESRI codes and is actively developed.
### JuliaClimate
[ClimateTools.jl](https://github.com/JuliaClimate/ClimateTools.jl) is a collection of commonly-used tools in Climate science. Basics of climate field analysis are covered, with some forays into exploratory techniques associated with climate scenarios design. The package is aimed to ease the typical steps of analysis climate models outputs and gridded datasets (support for weather stations is a work-in-progress).
[CDSAPI.jl](https://github.com/JuliaClimate/CDSAPI.jl) is a Julia API to the Climate Data Store (a.k.a. CDS).
[INMET.jl](https://github.com/JuliaClimate/INMET.jl) is a Julia API to access data from the Instituto Nacional de Metereologia (INMET).
[STAC.jl](https://github.com/JuliaClimate/STAC.jl): SpatioTemporal Asset Catalogs (STAC) client in Julia.
### Other third-party packages
The packages below are hosted in individual GitHub accounts or in GitHub organizations of specific institutions:
[Rasters.jl](https://rafaqz.github.io/Rasters.jl/dev/) 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](https://github.com/user-attachments/assets/1c6c56ac-4c5a-4096-984d-15bf2783682c) over similar packages in other languages.
[GeoDataFrames.jl](https://www.evetion.nl/GeoDataFrames.jl/dev/) enables the handling of geospatial vector data in Julia by integrating geometric operations directly within DataFrame structures, inspired by Python's [GeoPandas](https://geopandas.org/en/stable/). It achieves this by treating a vector of geometries as a column, allowing for intuitive spatial data manipulation and analysis alongside tabular attributes.
[ArchGDAL.jl](https://yeesian.com/ArchGDAL.jl) A complete solution for working with GDAL in Julia.
[LazIO](https://github.com/evetion/LazIO.jl): Enables the reading and writing of Laz files.
[FlatGeobuf.jl](https://github.com/evetion/FlatGeobuf.jl): A native flatgeobuf implementation in Julia
[SpaceLiDAR.jl](https://github.com/evetion/SpaceLiDAR.jl) Utilities for accessing and working with satellite altimetry data (i.e. ICESat, ICESat-2, GEDI)
[Geomorphometry.jl](https://deltares.github.io/Geomorphometry.jl/v0.7.0/) Geospatial operations, cost and filtering algorithms as used for elevation rasters.
[SortTileRecursiveTree.jl](https://github.com/asinghvi17/SortTileRecursiveTree.jl) An Sort-Tile-Recursive (SRT) tree implementation for GeoInterface compatible geometries.
## Visualization
Visualization is performed with general purpose plotting packages, see [Makie](https://docs.makie.org/stable/) and [Plots.jl](https://docs.juliaplots.org/stable). The packages below are maintained in the [MakieOrg](https://github.com/MakieOrg) GitHub organization:
[Tyler.jl](https://github.com/MakieOrg/Tyler.jl) for displaying tiled maps interactively with [Makie](https://docs.makie.org/stable/).
[GeoMakie.jl](https://github.com/MakieOrg/GeoMakie.jl) for geographic plotting utilities using [Makie](https://docs.makie.org/stable/).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the inputs @juliohm. You feedback has ignited some good conversations on what we want JuliaGeo to be and what our shared vision is. Things have evolved greatly over the last 5 years and JuliaGeo is moving well beyond a repository for geo I/O and dataset access towards a full service geo analysis suite that is complimentary to JuliaEarth and that needs to be reflected in the entry page. There are good reasons that several of our contributors, like yourself, maintain affiliated packages on their own repositories and we need a better way of capturing that. I'm going to table this PR until we can get that sorted, with an understanding that the status qua is not working as well as it could.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You feedback has ignited some good conversations on what we want JuliaGeo to be and what our shared vision is

Keep in mind that you cannot speak for JuliaGeo. Other people here have been around since the beginning of Julia, and I joined this organization around the same time (~10 years ago). Your suggestions in this PR completely disregard alternative views, and your attempt to push your own view into what JuliaGeo is or is not, is not ok.

There are good reasons that several of our contributors, like yourself, maintain affiliated packages on their own repositories

Please do not include me in this list. All packages I maintain are hosted across multiple GitHub organizations (JuliaEarth, JuliaClimate, JuliaML, JuliaGeometry, ...) and are not hosted in my own personal account.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Points taken... we can bring these changes to a vote with the organization before anything is merged... this way we can make sure it's the majorities view.

2 changes: 1 addition & 1 deletion _config.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
theme: jekyll-theme-cayman
title: JuliaGeo
description: ["JuliaGeo is an organization that contains a number of related Julia projects for manipulating, querying, and processing geospatial geometry data. We aim to provide a common interface between geospatial packages."]
description: ["JuliaGeo serves as a focal point for developing and maintaining the next generation of tooling for geospatial analysis in Julia."]
github:
repository_url: ["https://github.com/JuliaGeo"]
is_project_page: True