[{"id":"sentinel2-motion-gif","title":"Sentinel-2 Motion GIF","description":"Turns Sentinel-2's inter-band time offsets into motion animations, in the browser. Ported from a QGIS plugin.","tags":["remote sensing","gis","canvas"]},{"id":"satellite-processor","title":"Satellite Imagery Processor","description":"Loads raw satellite band GeoTIFFs from your own machine — Sentinel-2, Landsat 4-9, Sentinel-1 SAR, SPOT 1-7, Wyvern Dragonette, or NASA EO-1 ALI — and processes them into RGB composites or spectral indices, entirely client-side, nothing uploaded anywhere. Ported from a QGIS plugin.","tags":["remote sensing","gis","canvas","raster"]},{"id":"easy-crop","title":"Easy Crop","description":"Crop a GeoTIFF interactively with a photo-editor-style handle tool and export a georeferenced clip — entirely client-side. Ported from a QGIS plugin.","tags":["gis","raster","canvas","geotiff"]},{"id":"gis-editor","title":"GIS Editor","description":"Draw, style and export vector features on a live map — points, lines, polygons — with CSV/GeoJSON import-export and autosave. A complete browser-native mini-GIS, not a QGIS port.","tags":["gis","vector","maplibre","draw"]},{"id":"restore-geotiff-metadata","title":"Restore GeoTIFF Metadata","description":"Copy georeferencing (CRS + geotransform) from an original GeoTIFF onto an edited TIFF that lost it — entirely client-side. Ported from a QGIS plugin.","tags":["gis","raster","geotiff","metadata"]},{"id":"stac-browser","title":"STAC Browser","description":"Browse any public STAC catalog — drill into collections and items, preview thumbnails and footprints on a map, inspect assets. Entirely client-side.","tags":["gis","stac","raster","catalog"]},{"id":"sat-search","title":"Satellite Search","description":"Mobile-first satellite imagery search — find recent Sentinel-2, Landsat, and Sentinel-1 scenes for any place on Earth. Real STAC search, no mock data.","tags":["mobile","satellite","stac","search"]},{"id":"timelapse","title":"GIS Timelapse","description":"Animate time-based GIS data on a map — import points with dates, then scrub or play through the timeline.","tags":["gis","vector","animation","map"]},{"id":"satellite-timelapse","title":"Satellite Timelapse","description":"Build an aligned timelapse of any place — Sentinel-2 at 10 m for a field or a building site, MODIS and VIIRS daily back to 2000 for a season, or GOES and Himawari every ten minutes to watch weather move. Plays back on the map and exports an animated GIF. No API key needed.","tags":["remote sensing","satellite","animation","stac","modis","goes"]},{"id":"reproject","title":"Reproject","description":"Reproject GeoTIFFs, GeoJSON and CSV between coordinate systems — UTM zones, Web Mercator, national grids. Rasters are warped and resampled, vectors transformed exactly. Runs entirely in your browser, nothing uploaded.","tags":["gis","raster","vector","geotiff","crs"]},{"id":"raster-mover","title":"Raster Mover","description":"Nudge a misaligned GeoTIFF into place — drag it over a basemap or type exact offsets, with an opacity slider to line it up. Only the georeferencing changes, so no pixels are resampled. Ported from a QGIS plugin.","tags":["gis","raster","geotiff","georeferencing"]},{"id":"legend-editor","title":"Legend Editor","description":"Build a map legend and export it as a transparent PNG — swatches, section headings and gradient ramps, with QGIS colour-map paste-in. Also deployed standalone at legend.harrysat.com.","tags":["gis","cartography","legend","export"]},{"id":"sentinel-raw","title":"Sentinel-2 Raw","description":"Build Sentinel-2 imagery from the source COGs in your browser — true colour, false colour and indices computed from real surface reflectance, reading only the pixels under your area. No tiler, no API key.","tags":["satellite","sentinel-2","cog","remote-sensing"]},{"id":"geotiff-merger","title":"GeoTIFF Merger","description":"Merge multiple GeoTIFFs into one mosaic — reprojected to a common CRS, with black collars turned into real transparency and overlaps stacked the way you choose. Runs entirely in your browser, nothing uploaded.","tags":["gis","raster","geotiff","mosaic"]},{"id":"umbra-sicd","title":"Umbra SICD","description":"Open an Umbra SICD without loading it: scene metadata, collection geometry and the ground footprint, read from two small ranges of a multi-gigabyte file. Runs entirely in your browser, nothing uploaded.","tags":["gis","sar","sicd","umbra"]},{"id":"raster-timelapse","title":"Raster Timelapse","description":"Turn a stack of georeferenced rasters into an animation — aligned onto one grid, played back, and exported as a GIF that still carries its place, or as a multi-band GeoTIFF. Runs entirely in your browser, nothing uploaded.","tags":["gis","raster","animation","geotiff"]},{"id":"map-maker","title":"Map Maker","description":"Compose a map sheet from your data: page size and orientation in millimetres, inches or pixels, a map frame over a basemap, title, legend, scale bar and north arrow, placed freely or from a template. Opens a GIS Editor project or takes dropped GeoJSON, KML and CSV, frames each map in the GIS Editor itself, and exports a print-resolution PNG or PDF.","tags":["gis","cartography","layout","print","map"]},{"id":"raster-compressor","title":"Raster Compressor","description":"Shrink a GeoTIFF without losing its georeferencing: lossless Deflate with the right predictor, JPEG or WebP where the pixels can take it, and bit depth cut from float to integer with the stretch shown. Writes plain GeoTIFFs, Cloud-Optimized GeoTIFFs, or web images with world files. Runs entirely in your browser, nothing uploaded.","tags":["gis","raster","geotiff","compression","cog"]}]