using Proj4 wgs84 = Proj4.Proj("+proj=longlat +datum=WGS84") webmerc = Proj4.Proj("+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m") Transform a point x_merc, y_merc = Proj4.transform(wgs84, webmerc, -74.006, 40.7128) # NYC

using DataFrames, CSV df = CSV.read("earthquakes.csv", DataFrame)

using GLMakie, Random Random.seed!(42) lats = 60.17 .+ randn(10_000_000) * 0.01 lons = 24.94 .+ randn(10_000_000) * 0.01

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)

But here’s the cartographic insight: . Julia’s missing union type forces you to be explicit. No silent NaN propagation. You must decide: impute, drop, or mark.

fig, ax, plt = poly(poly_coords, color = df.gdp_per_capita, colormap = :viridis, axis = (; aspect = DataAspect()))

Julia Data Kartta ~repack~ -

using Proj4 wgs84 = Proj4.Proj("+proj=longlat +datum=WGS84") webmerc = Proj4.Proj("+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m") Transform a point x_merc, y_merc = Proj4.transform(wgs84, webmerc, -74.006, 40.7128) # NYC

using DataFrames, CSV df = CSV.read("earthquakes.csv", DataFrame) 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 using Proj4 wgs84 = Proj4

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) You must decide: impute, drop, or mark

But here’s the cartographic insight: . Julia’s missing union type forces you to be explicit. No silent NaN propagation. You must decide: impute, drop, or mark.

fig, ax, plt = poly(poly_coords, color = df.gdp_per_capita, colormap = :viridis, axis = (; aspect = DataAspect()))