Raster Reprojection Lab

Raster Reprojection Lab

Reproject a small north-up GeoTIFF grid between WGS 84 geographic (EPSG:4326) and Web Mercator (EPSG:3857). Each target-cell center is inverse-projected into the source grid, resampled, and saved as a GeoTIFF that can be read back.

1. Source GeoTIFF

Local GeoTIFF only. Max 8 MiB file, 120,000 source/output cells each, and four bands.

2. Target grid and resampling

Resolution uses degrees in EPSG:4326 or metres in EPSG:3857. Auto keeps the source cell count. Bilinear requires every contributing neighbor to be valid.

The output is an uncompressed Float64 GeoTIFF. Source color profiles, compression and complex metadata are not retained. The GeoTIFF writing API is beta.

Library license originals and sources

Choose a GeoTIFF or load the example.

Comments & questions

GeoTIFF Raster Reprojection Lab

Reproject a small north-up GeoTIFF grid between WGS 84 geographic (EPSG:4326) and Web Mercator (EPSG:3857). Each target-cell center is inverse-projected into the source grid, resampled, and saved as a GeoTIFF that can be read back.

Key features

  • Read a real GeoTIFF CRS, grid extent, bands and NoData before planning the opposite CRS
  • Inverse-map target pixel centers and apply nearest-neighbor or bilinear resampling
  • Preserve up to four numeric bands and per-band NoData output values
  • Report requested/actual resolution, extent, valid/NoData cells and numeric projection round-trip difference
  • Write a real uncompressed Float64 GeoTIFF and re-read its metadata before download
  • Explicitly reject unsupported rotation, arbitrary CRS, palette, alpha, multi-image files and over-limit grids

How to use

  1. Choose a GeoTIFF or load the three-band example; inspect its source CRS, bounds and NoData.
  2. Select the opposite EPSG code and nearest or bilinear interpolation.
  3. Optionally enter target X/Y cell resolution in target-CRS units; blanks preserve the source cell count.
  4. Run reprojection and inspect target grid, NoData count and numerical reverse-check.
  5. Download the .tif and check its CRS, extent and bands in GIS.

Use cases

  • Adapt a small numeric GeoTIFF grid to a Web Mercator map
  • Compare interpolation and NoData boundaries when returning to a geographic grid
  • Examine resolution differences for teaching grids without transmitting source imagery

Frequently asked questions

How is this different from resizing an image?

It maps each target grid cell center through an inverse CRS transform before reading a source band value. Its geospatial bounds, cell resolution and GeoTIFF coordinate tags change together.

Which CRS and files are supported?

Only one-image, north-up PixelIsArea GeoTIFFs explicitly tagged EPSG:4326 or EPSG:3857, transformed to the opposite CRS. Rotation, palettes, alpha, complex GDAL metadata, other CRS and multiple images are rejected.

How is NoData treated in bilinear interpolation?

If any contributing neighbor has NoData, that output band becomes NoData. Nearest uses its selected source sample. The report counts a cell as NoData when every band is NoData.

Are every source tag and compression preserved?

No. A new uncompressed Float64 GeoTIFF preserves georeferencing, sample values, band count and NoData. Source compression, styling, generic TIFF/GDAL metadata and color profiles are not copied. The library writer API is beta.

Does the round-trip number prove real-world location accuracy?

No. It is floating-point reverse-projection difference at four corners only. Resampling/cell error, original measurement quality, datum realization or epoch, and ellipsoidal distortion are not assessed.

Can this handle large satellite images?

This browser lab caps files at 8 MiB, source and output grids at 120,000 cells, four bands and 1024 cells per side. Large imagery, arbitrary projection and compression preservation need a dedicated GIS raster tool.

Privacy

The selected GeoTIFF stays in this browser tab. File reading, reprojection and downloads are local; this tool does not upload the input to its server API.

References

Related Tools

Coordinate Reference LabImage ResizeGeoJSON Map EditorWasm Module InspectorHreflang Matrix CheckerAST Query PlaygroundContainer Build GraphDependency Graph ExplorerSemver Range LabCron Schedule AuditorPatch Review WorkbenchSource Map ExplorerLocalization Catalog AuditorStructured Data ReviewerHTTP Archive AnalyzerWebhook Signature LabProtobuf Schema WorkbenchGraphQL Schema LabAvro Schema EvolutionLocal SQL WorkbenchSchema Form BuilderMesh Repair WorkbenchPipe Network LabRobot Arm Kinematics LabThermal Network LabBeam Response LabGear Train DesignerTolerance Stackup LabSensor Calibration FitPCB Stackup PlannerDigital Filter DesignerNetwork Reachability MapSun Shadow MapGPS Error SimulatorDigital Logic SimulatorAnalog Circuit LabMechanism Linkage LabAnalysis Mesh GeneratorOpenAPI Contract InspectorDatabase Migration PlannerDimensional Equation CheckerTruss Force LabBoolean Minimization LabControl Response LabQueueing Simulation LabGeofence Event SimulatorSurvey Traverse LabRaster Classification LabChoropleth Design LabMap Print ComposerElevation Contour MakerTerrain Viewshed LabWatershed DelineatorMap Tile PackagerText File Encoding WorkbenchFilesystem Portability AuditorSBOM License ExplorerFile Signature Auditornpm Lockfile Conflict ResolverSource Secret AuditorOffline Web Package BuilderCertificate Chain InspectorTorrent Metainfo InspectorChunked File PackagerEncrypted File VaultDuplicate File FinderArchive WorkbenchDesign Token ManagerSpacing Token DesignerResponsive Type SystemPackaging Dieline DesignerSVG Icon Sprite PackerFlex Layout PlaygroundCSS Grid PlaygroundRegex Equivalence LabMarkdown Repository AuditorLog Template MinerResponsive Layout AuditorEmail Template PreviewInternal Link GraphState Machine TesterPetri Net SimulatorGit History VisualizerCurl Request WorkbenchBinary Protocol DesignerHex File EditorBinary Patch WorkbenchFile Signature WorkbenchAPI Mock SandboxSchema Column MapperEvent Log SessionizerER Diagram DesignerTime Series Gap AuditorStratified Data SplitterData Lineage DesignerDecision Tree LabData Anonymization WorkbenchData Expectation RunnerJSON Schema ValidatorBasket Pattern AnalyzerRobots Policy TesterSEO HTML AuditorAccessibility Structure AuditorSyndication Feed WorkbenchIndexNow Payload BuilderCrawl Log AnalyzerCSP Policy WorkbenchSearch Performance AnalyzerCSV Formula Risk AuditorCORS Response SimulatorCache Header LabCookie Policy InspectorWeb Vitals Trace LabSitemap Health AuditorBatch File RenamerFile Manifest VerifierFolder Space MapFolder Difference ReviewerRoute Order OptimizerPolygon Overlay LabCartographic Label PlacerSpatial Table JoinGeoJSON Topology AuditorGPX Track AnalyzerTrack Privacy RedactorCSV Table JoinCSV Pivot WorkbenchScientific Data ProfilerTabular Cleaning WorkbenchRecord ReconciliationData Dictionary BuilderCanonical Graph AuditorRedirect Plan TesterHTTP response and ping reference testBrowser and System InformationJSON ↔ YAML ConverterXML ↔ JSON ConverterHTML FormatterJavaScript MinifierMock Data Generator.gitignore GeneratorLicense GeneratorUser-Agent ParserPassword Strength CheckerCode to ImageXML FormatterHTTP Status Code LookupMIME Type LookupJS & SQL String EscapeCSS Box Shadow GeneratorCSS Gradient GeneratorIndent ConverterNumber Base ConverterUnicode Escape ConverterUnicode InspectorJSON Structure DiffMarkdown Table GeneratorBase64 EncoderJSON FormatterURL EncoderSQL FormatterCron Expression GeneratorRegex TesterUUID GeneratorHash GeneratorTimestamp ConverterJWT DecoderHTML Entity ConverterMarkdown PreviewCSS MinifierMeta Tag GeneratorJSON ↔ CSVCase ConverterImage to Base64
Explore all Dev Tools tools →Image/Media →Text/Convert →Life/Fun →