Skip to content

Commit 62ce526

Browse files
authored
Merge pull request #19 from alex-s-gardner/readme
Expand ReadMe
2 parents 9092557 + c584725 commit 62ce526

File tree

1 file changed

+113
-2
lines changed

1 file changed

+113
-2
lines changed

README.md

Lines changed: 113 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,119 @@
1-
# Geo
1+
# Geo.jl
22

33
[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://JuliaGeo.github.io/Geo.jl/stable/)
44
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://JuliaGeo.github.io/Geo.jl/dev/)
5+
56
[![Build Status](https://github.com/JuliaGeo/Geo.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/JuliaGeo/Geo.jl/actions/workflows/CI.yml?query=branch%3Amain)
67
[![Coverage](https://codecov.io/gh/JuliaGeo/Geo.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/JuliaGeo/Geo.jl)
8+
[![Julia](https://img.shields.io/badge/Julia-1.10%2B-blue)](https://julialang.org/)
9+
10+
A comprehensive meta package for the JuliaGeo ecosystem that provides easy access to the complete suite of geospatial data processing tools in Julia.
11+
12+
## Overview
13+
14+
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.
15+
16+
## What's Included
17+
18+
Geo.jl brings together 10+ specialized geospatial packages, organized by functionality:
19+
20+
### Core Geospatial Libraries
21+
- **ArchGDAL** - GDAL bindings for reading/writing geospatial data formats
22+
- **GeoInterface** - Common interface for geospatial data types
23+
- **GeometryOps** - Geometric operations and algorithms
24+
- **LibGEOS** - High-performance geometric operations engine
25+
- **Proj** - Coordinate reference system transformations
26+
27+
### Data Structures & Processing
28+
- **DimensionalData** - Multi-dimensional labeled arrays
29+
- **Extents** - Spatial extents and bounding boxes
30+
- **Rasters** - Raster data handling and analysis
31+
- **GeoDataFrames** - Geospatial data frames (vector data)
32+
33+
### File Format Support
34+
- **GeoJSON** - GeoJSON format support
35+
- **GeoParquet** - Parquet format for geospatial data
36+
- **Shapefile** - ESRI Shapefile support
37+
- **NCDatasets** - NetCDF data support
38+
- **ZarrDatasets** - Zarr format support
39+
- **WellKnownGeometry** - WKT/WKB geometry support
40+
41+
### Additional Tools
42+
- **GeoFormatTypes** - Type definitions for geospatial formats
43+
- **CommonDataModel** - Common data model for scientific data
44+
45+
## Installation
46+
47+
```julia
48+
using Pkg
49+
# install packages into your current environment
50+
Pkg.add("Geo") # add Geo
51+
Pkg.add("CairoMakie") # add Plotting
52+
```
53+
54+
## Quick Start
55+
### Raster data
56+
```julia
57+
# load a module
58+
using Geo
59+
using CairoMakie
60+
61+
# url to example raster file
62+
path2raster = "https://github.com/rasterio/rasterio/raw/9953b28225db3b01193c94b1442d34b828d374aa/tests/data/RGB2.byte.tif"
63+
64+
# Load a raster
65+
ras = Geo.Raster(path2raster)
66+
67+
791×718×3 Raster{UInt8, 3} ┐
68+
├────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────── dims ┐
69+
X Projected{Float64} 101985.0:300.0379266750948:339014.9620733249 ForwardOrdered Regular Intervals{Start},
70+
Y Projected{Float64} 2.82661495821727e6:-300.04178272980505:2.611485e6 ReverseOrdered Regular Intervals{Start},
71+
↗ Band Categorical{Int64} 1:3 ForwardOrdered
72+
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── metadata ┤
73+
Metadata{Rasters.GDALsource} of Dict{String, Any} with 1 entry:
74+
"filepath" => "/vsicurl/https://github.com/rasterio/rasterio/raw/9953b28225db3b01193c94b1442d34b828d374aa/tests/data/RGB2.byte.tif"
75+
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── raster ┤
76+
extent: Extent(X = (101985.0, 339315.0), Y = (2.611485e6, 2.826915e6), Band = (1, 3))
77+
crs: PROJCS["UTM Zone 18, Northern Hemisphere",GEOGCS["Unknown datum based upon the WGS 84 ellipsoid",DATUM["Not_specified_based_on_...
78+
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
79+
[:, :, 1]
80+
⋮ ⋱
81+
```
82+
83+
Plot Raster
84+
```julia
85+
heatmap(ras)
86+
```
87+
![Geo raster heatmap](https://private-user-images.githubusercontent.com/32276930/490279441-abcafbe2-1a5e-45d4-b4a0-bb6b1389b7d8.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTgwNjI0MzQsIm5iZiI6MTc1ODA2MjEzNCwicGF0aCI6Ii8zMjI3NjkzMC80OTAyNzk0NDEtYWJjYWZiZTItMWE1ZS00NWQ0LWI0YTAtYmI2YjEzODliN2Q4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA5MTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwOTE2VDIyMzUzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA0ZmZkMjI2OTc3ZDlhN2RmY2MxMWIxOGMwYmYzZWY4NTZhOWEwZWQ2NTEyNWE2ZDI5MzZmOWEwOWQ4YjdhMDEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.48M-_lFEpQ53QabEl1KPeiaf_Jrg3HZEDGcSnB0vUGs)
88+
89+
### Vector data
90+
```julia
91+
path2vector = "https://github.com/martynafford/natural-earth-geojson/raw/refs/heads/master/10m/physical/ne_10m_coastline.json"
92+
gdf = Geo.GeoDataFrames.read(path2vector)
93+
94+
Row │ geometry featurecla scalerank min_zoom
95+
│ IGeometr… String Int32 Float64
96+
──────┼──────────────────────────────────────────────────────────
97+
1 │ Geometry: wkbLineString Coastline 0 0.0
98+
2 │ Geometry: wkbLineString Coastline 0 0.0
99+
3 │ Geometry: wkbLineString Coastline 6 5.0
100+
⋮ │ ⋮ ⋮ ⋮ ⋮
101+
4132 │ Geometry: wkbLineString Coastline 6 0.5
102+
4133 │ Geometry: wkbLineString Coastline 6 4.0
103+
4128 rows omitted
104+
```
105+
106+
Plot geometry
107+
```julia
108+
plot(gdf.geometry)
109+
```
110+
![Geo vector plot](https://private-user-images.githubusercontent.com/32276930/490280772-bf3ba00f-5eeb-491c-a187-f43282d0986c.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTgwNjI4MzQsIm5iZiI6MTc1ODA2MjUzNCwicGF0aCI6Ii8zMjI3NjkzMC80OTAyODA3NzItYmYzYmEwMGYtNWVlYi00OTFjLWExODctZjQzMjgyZDA5ODZjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA5MTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwOTE2VDIyNDIxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdkMTMxMGFhYWJmMDU4OTdmYzUwZTFmM2QzMDU3YjU1MzQwYmU3YjZkMTQwYjgzZDdhNWI3ZmI4MWY4YTkyZjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Tkkvcx8zzxoCMjjlal2RrYubrPgdEmVakeimxuDrlfI)
111+
```
112+
113+
## Key Benefits
7114
8-
A meta package for the JuliaGeo ecosystem.
115+
- **One-Command Setup**: Install all geospatial tools with a single `Pkg.add("Geo")`
116+
- **Compatibility Guaranteed**: All packages are tested for compatibility
117+
- **Version Management**: Carefully curated version constraints prevent conflicts
118+
- **Complete Ecosystem**: Access to the full JuliaGeo toolkit
119+
- **Easy Updates**: Update all geospatial packages together

0 commit comments

Comments
 (0)