Data Kartta | Julia
Because GeoArray behaves like a regular Julia Array , all your linear algebra, FFTs, and statistical functions work out of the box. No rasterio boilerplate. A map without a legend is a puzzle. Makie’s composable Axis system (borrowing ideas from Grammar of Graphics) allows you to build legends as first-class objects.
using Statistics df.magnitude = coalesce.(df.magnitude, mean(skipmissing(df.magnitude))) This explicitness prevents the “swiss cheese map” phenomenon—where missing values create false gaps in your visualization. Matplotlib is a compass. ggplot2 is a sextant. Makie.jl is a satellite. julia data kartta
using GLMakie, Random Random.seed!(42) lats = 60.17 .+ randn(10_000_000) * 0.01 lons = 24.94 .+ randn(10_000_000) * 0.01 Because GeoArray behaves like a regular Julia Array
using GeoArrays, ArchGDAL ga = GeoArray("landsat_band4.tif") roi = ga[100:200, 100:200] Apply a filter (e.g., NDVI calculation) ndvi = (ga.band4 - ga.band3) / (ga.band4 + ga.band3) Write back with preserved georeferencing GeoArrays.write("ndvi_map.tif", ndvi) ggplot2 is a sextant
fig, ax, plt = poly(poly_coords, color = df.gdp_per_capita, colormap = :viridis, axis = (; aspect = DataAspect()))