I’d like to announce GeoArrays.jl. To be fair, it’s from 2018, but I think it’s good to have it indexed here.
GeoArrays provides simple geographical raster interaction built on top of ArchGDAL, GDAL and CoordinateTransformations. It follows the design from the excellent rasterio package in Python. That means a GeoArray has an 3D Array (x,y,bands) with data values, an AffineMap to map logical indices to coordinates and a CRS to link the coordinates to the real world.
Reading:
julia> fn = download("https://github.com/yeesian/ArchGDALDatasets/blob/master/data/utmsmall.tif?raw=true")
julia> geoarray = GeoArrays.read(fn)
100x100x1 Array{UInt8,3} with AffineMap([60.0 0.0; 0.0 -60.0], [440720.0, 3.75132e6]) and CRS PROJCS["NAD27 / UTM zone 11N"...
Writing:
julia> ga = GeoArray(rand(100,200))
julia> bbox!(ga, (min_x=2., min_y=51., max_x=5., max_y=54.)) # roughly the Netherlands
julia> epsg!(ga, 4326) # in WGS84
julia> GeoArrays.write!("test.tif", ga)
An alternative package with a broader scope, such as including netCDFs is GeoData.