library(terra)
## crs changes where it is longitudinally, this is southern hemi range for UTM
r <- rast(ext(c(1e+05, 9e+05, 11e+05, 1e+07)), res = 1e5, crs = "EPSG:32755")
plot(project(densify(as.polygons(r), 5000), "EPSG:4326"))
maps::map(add= TRUE)
library(measoshapes)
library(dplyr)
library(sf)
## join on the names
measo_regions <- measo_regions05 |> inner_join(measo_names, by = "name", relationship = "many-to-many")
## here we dissolve by name (remove the antimeridian split)
measo <- measo_regions |> group_by(name, zone, fill) |> summarize() Short link to Estinel catalog of Sentinel 2 imagery
Future enhancements, within design document: https://github.com/mdsumner/estinel/blob/main/inst/docs/design-rationale.md#future-enhancement-possibilities
# that antimeridian thing, first in R
library(reproj)
## it's easy to get a range across the antimeridian
ex <- c(179.98, 180.12, -17, -16.8)
## this is fine
(utmex <- reproj_extent(ex, "EPSG:32760", source = "EPSG:4326"))Help for weatherOz function: https://docs.ropensci.org/weatherOz/reference/get_patched_point.html#available-values
#We have to set our email as a config for the API:
Sys.setenv("SILO_API_KEY"="[email protected]")
library(weatherOz)
#> Warning: package 'weatherOz' was built under R version 4.5.2
#> I want to see how much geospatial solution for a project we can get just by me asking about it, I will use R as the foundation for code.
I want to create a series of grids in (relevant) UTM zones for the terrestrial Australian Antarctic Territory, this consists of the entire Antarctic continent betwen 44E longitude, and 160Elongitude and offshore islands (Macquarie and Heard and McDonald islands at least). The latitudinal range then is at least 70S latitude to 50S (I'm not concerned for now for regions further south as that has implications for using UTM vs something like polar stereographic, I'll keep that as a todo/explore - it might be MGRS).
Because we start with UTM that means each zone is consistent within itself, but there will be some overlap/duplication at zone edges. I won't be rendering every theoretical tile, because only terrestrial (for now). There will be two levels of detail, one targeting pixels at 60m resolution, and one at 10m resolution. The idea is that any "scene" that I rende
sentinel_palette <- function() {
as.data.frame(list(value = 0:11, class = c("No Data (Missing data)", "Saturated or defective pixel",
"Topographic casted shadows (called Dark features/Shadows for data before 2022-01-25)",
"Cloud shadows", "Vegetation", "Not-vegetated", "Water", "Unclassified",
"Cloud medium probability", "Cloud high probability", "Thin cirrus",
"Snow or ice"), col = c("#000000", "#ff0000", "#2f2f2f", "#643200",
"#00a000", "#ffe65a", "#0000ff", "#808080", "#c0c0c0", "#ffffff", https://gdal.org/en/stable/user/coordinate_epoch.html
ogrinfo /vsicurl/https://github.com/OSGeo/gdal/raw/refs/heads/master/autotest/ogr/data/flatgeobuf/test_ogr_flatgeobuf_coordinate_epoch.fgb foo -so
INFO: Open of `/vsicurl/https://github.com/OSGeo/gdal/raw/refs/heads/master/autotest/ogr/data/flatgeobuf/test_ogr_flatgeobuf_coordinate_epoch.fgb'
using driver `FlatGeobuf' successful.
remotes::install_github("mdsumner/nuyina.underway")
library(nuyina.underway)
d <- nuyina_underway() ## every time this runs it is up to date
range(d$datetime)
#[1] "2021-12-23 05:00:00 UTC" "2025-11-11 23:42:00 UTC"