| route-pattern | /:user_id/:repository |
| route-controller | files |
| route-action | disambiguate |
| fetch-nonce | v2:14d4bcfb-13dd-5cdd-68f5-d8fcbcf2c91c |
| current-catalog-service-hash | f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb |
| request-id | BA10:1CCFE3:30D88B8:410C75C:6A6545E8 |
| html-safe-nonce | 0158c4320fb38da5242e266e392a4c275147044fa81e8d102f41979fb0c33df0 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCQTEwOjFDQ0ZFMzozMEQ4OEI4OjQxMEM3NUM6NkE2NTQ1RTgiLCJ2aXNpdG9yX2lkIjoiODc3NjM1NTM2NDM0NTMwMDQ1NiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 561e04176edce51571c2b81a7f16f510bcc69925d1fa4c2f5df78849546a0322 |
| hovercard-subject-tag | repository:1089802860 |
| github-keyboard-shortcuts | repository,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | // |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/jo-chemla/terrain-viewer |
| twitter:image | https://opengraph.githubassets.com/ff3776ae595e0dce5cfd8dd7353d3de58e636f924ab16f44119d8391601d35b5/jo-chemla/terrain-viewer |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/ff3776ae595e0dce5cfd8dd7353d3de58e636f924ab16f44119d8391601d35b5/jo-chemla/terrain-viewer |
| og:image:alt | Rendering and Comparison (hillshade, contours, hypso) of Global TerrainRGB, Terrarium and COG terrain DEM/DSM/DTM open-data sources based on Maplibre - jo-chemla/terrain-viewer |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 52c76df668885aaff23b50bdca1fa1ea44ac9c1553e888ebc70ff1e4daa4625b |
| turbo-cache-control | no-cache |
| go-import | github.com/jo-chemla/terrain-viewer git https://github.com/jo-chemla/terrain-viewer.git |
| octolytics-dimension-user_id | 16822841 |
| octolytics-dimension-user_login | jo-chemla |
| octolytics-dimension-repository_id | 1089802860 |
| octolytics-dimension-repository_nwo | jo-chemla/terrain-viewer |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1089802860 |
| octolytics-dimension-repository_network_root_nwo | jo-chemla/terrain-viewer |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 309153364422b3c499922d1a2a6404910a58ed8e |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| Skip to content | https://github.com/jo-chemla/terrain-viewer#start-of-content |
|
| https://github.com/ |
|
Sign in
| https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fjo-chemla%2Fterrain-viewer |
| GitHub CopilotWrite better code with AI | https://github.com/features/copilot |
| GitHub Copilot appDirect agents from issue to merge | https://github.com/features/ai/github-app |
| MCP RegistryNewIntegrate external tools | https://github.com/mcp |
| ActionsAutomate any workflow | https://github.com/features/actions |
| CodespacesInstant dev environments | https://github.com/features/codespaces |
| IssuesPlan and track work | https://github.com/features/issues |
| Code ReviewManage code changes | https://github.com/features/code-review |
| Code QualityEnforce quality at merge | https://github.com/features/code-quality |
| GitHub Advanced SecurityFind and fix vulnerabilities | https://github.com/security/advanced-security |
| Code securitySecure your code as you build | https://github.com/security/advanced-security/code-security |
| Secret protectionStop leaks before they start | https://github.com/security/advanced-security/secret-protection |
| Why GitHub | https://github.com/why-github |
| Documentation | https://docs.github.com |
| Blog | https://github.blog |
| Changelog | https://github.blog/changelog |
| Marketplace | https://github.com/marketplace |
| View all features | https://github.com/features |
| Enterprises | https://github.com/enterprise |
| Small and medium teams | https://github.com/team |
| Startups | https://github.com/enterprise/startups |
| Nonprofits | https://github.com/solutions/industry/nonprofits |
| App Modernization | https://github.com/solutions/use-case/app-modernization |
| DevSecOps | https://github.com/solutions/use-case/devsecops |
| DevOps | https://github.com/solutions/use-case/devops |
| CI/CD | https://github.com/solutions/use-case/ci-cd |
| View all use cases | https://github.com/solutions/use-case |
| Healthcare | https://github.com/solutions/industry/healthcare |
| Financial services | https://github.com/solutions/industry/financial-services |
| Manufacturing | https://github.com/solutions/industry/manufacturing |
| Government | https://github.com/solutions/industry/government |
| View all industries | https://github.com/solutions/industry |
| View all solutions | https://github.com/solutions |
| AI | https://github.com/resources/articles?topic=ai |
| Software Development | https://github.com/resources/articles?topic=software-development |
| DevOps | https://github.com/resources/articles?topic=devops |
| Security | https://github.com/resources/articles?topic=security |
| View all topics | https://github.com/resources/articles |
| Customer stories | https://github.com/customer-stories |
| Events & webinars | https://github.com/resources/events |
| Ebooks & reports | https://github.com/resources/whitepapers |
| Business insights | https://github.com/solutions/executive-insights |
| GitHub Skills | https://skills.github.com |
| Documentation | https://docs.github.com |
| Customer support | https://support.github.com |
| Community forum | https://github.com/orgs/community/discussions |
| Trust center | https://github.com/trust-center |
| Partners | https://github.com/partners |
| View all resources | https://github.com/resources |
| GitHub SponsorsFund open source developers | https://github.com/open-source/sponsors |
| Security Lab | https://securitylab.github.com |
| Maintainer Community | https://maintainers.github.com |
| Accelerator | https://github.com/open-source/accelerator |
| GitHub Stars | https://stars.github.com |
| Archive Program | https://archiveprogram.github.com |
| Topics | https://github.com/topics |
| Trending | https://github.com/trending |
| Collections | https://github.com/collections |
| Enterprise platformAI-powered developer platform | https://github.com/enterprise |
| GitHub Advanced SecurityEnterprise-grade security features | https://github.com/security/advanced-security |
| Copilot for BusinessEnterprise-grade AI features | https://github.com/features/copilot/copilot-business |
| Premium SupportEnterprise-grade 24/7 support | https://github.com/enterprise/premium-support |
| Pricing | https://github.com/pricing |
| Search syntax tips | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
| documentation | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
|
Sign in
| https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fjo-chemla%2Fterrain-viewer |
|
Sign up
| https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=jo-chemla%2Fterrain-viewer |
| Reload | https://github.com/jo-chemla/terrain-viewer |
| Reload | https://github.com/jo-chemla/terrain-viewer |
| Reload | https://github.com/jo-chemla/terrain-viewer |
|
jo-chemla
| https://github.com/jo-chemla |
| terrain-viewer | https://github.com/jo-chemla/terrain-viewer |
|
Notifications
| https://github.com/login?return_to=%2Fjo-chemla%2Fterrain-viewer |
|
Fork
3
| https://github.com/login?return_to=%2Fjo-chemla%2Fterrain-viewer |
|
Star
14
| https://github.com/login?return_to=%2Fjo-chemla%2Fterrain-viewer |
|
Code
| https://github.com/jo-chemla/terrain-viewer |
|
Issues
0
| https://github.com/jo-chemla/terrain-viewer/issues |
|
Pull requests
0
| https://github.com/jo-chemla/terrain-viewer/pulls |
|
Actions
| https://github.com/jo-chemla/terrain-viewer/actions |
|
Projects
| https://github.com/jo-chemla/terrain-viewer/projects |
|
Security and quality
0
| https://github.com/jo-chemla/terrain-viewer/security |
|
Insights
| https://github.com/jo-chemla/terrain-viewer/pulse |
|
Code
| https://github.com/jo-chemla/terrain-viewer |
|
Issues
| https://github.com/jo-chemla/terrain-viewer/issues |
|
Pull requests
| https://github.com/jo-chemla/terrain-viewer/pulls |
|
Actions
| https://github.com/jo-chemla/terrain-viewer/actions |
|
Projects
| https://github.com/jo-chemla/terrain-viewer/projects |
|
Security and quality
| https://github.com/jo-chemla/terrain-viewer/security |
|
Insights
| https://github.com/jo-chemla/terrain-viewer/pulse |
| https://github.com/jo-chemla/terrain-viewer |
| Branches | https://github.com/jo-chemla/terrain-viewer/branches |
| Tags | https://github.com/jo-chemla/terrain-viewer/tags |
| https://github.com/jo-chemla/terrain-viewer/branches |
| https://github.com/jo-chemla/terrain-viewer/tags |
| 322 Commits | https://github.com/jo-chemla/terrain-viewer/commits/main/ |
| https://github.com/jo-chemla/terrain-viewer/commits/main/ |
| .github/workflows | https://github.com/jo-chemla/terrain-viewer/tree/main/.github/workflows |
| .github/workflows | https://github.com/jo-chemla/terrain-viewer/tree/main/.github/workflows |
| components | https://github.com/jo-chemla/terrain-viewer/tree/main/components |
| components | https://github.com/jo-chemla/terrain-viewer/tree/main/components |
| hooks | https://github.com/jo-chemla/terrain-viewer/tree/main/hooks |
| hooks | https://github.com/jo-chemla/terrain-viewer/tree/main/hooks |
| lib | https://github.com/jo-chemla/terrain-viewer/tree/main/lib |
| lib | https://github.com/jo-chemla/terrain-viewer/tree/main/lib |
| public | https://github.com/jo-chemla/terrain-viewer/tree/main/public |
| public | https://github.com/jo-chemla/terrain-viewer/tree/main/public |
| src | https://github.com/jo-chemla/terrain-viewer/tree/main/src |
| src | https://github.com/jo-chemla/terrain-viewer/tree/main/src |
| theme-editor | https://github.com/jo-chemla/terrain-viewer/tree/main/theme-editor |
| theme-editor | https://github.com/jo-chemla/terrain-viewer/tree/main/theme-editor |
| visualisation-modes-vrt-qgis | https://github.com/jo-chemla/terrain-viewer/tree/main/visualisation-modes-vrt-qgis |
| visualisation-modes-vrt-qgis | https://github.com/jo-chemla/terrain-viewer/tree/main/visualisation-modes-vrt-qgis |
| .gitignore | https://github.com/jo-chemla/terrain-viewer/blob/main/.gitignore |
| .gitignore | https://github.com/jo-chemla/terrain-viewer/blob/main/.gitignore |
| .npmrc | https://github.com/jo-chemla/terrain-viewer/blob/main/.npmrc |
| .npmrc | https://github.com/jo-chemla/terrain-viewer/blob/main/.npmrc |
| CHANGELOG.md | https://github.com/jo-chemla/terrain-viewer/blob/main/CHANGELOG.md |
| CHANGELOG.md | https://github.com/jo-chemla/terrain-viewer/blob/main/CHANGELOG.md |
| Non-Geo-Relief-Visualization.md | https://github.com/jo-chemla/terrain-viewer/blob/main/Non-Geo-Relief-Visualization.md |
| Non-Geo-Relief-Visualization.md | https://github.com/jo-chemla/terrain-viewer/blob/main/Non-Geo-Relief-Visualization.md |
| README.md | https://github.com/jo-chemla/terrain-viewer/blob/main/README.md |
| README.md | https://github.com/jo-chemla/terrain-viewer/blob/main/README.md |
| TODO.md | https://github.com/jo-chemla/terrain-viewer/blob/main/TODO.md |
| TODO.md | https://github.com/jo-chemla/terrain-viewer/blob/main/TODO.md |
| byod.jpg | https://github.com/jo-chemla/terrain-viewer/blob/main/byod.jpg |
| byod.jpg | https://github.com/jo-chemla/terrain-viewer/blob/main/byod.jpg |
| components.json | https://github.com/jo-chemla/terrain-viewer/blob/main/components.json |
| components.json | https://github.com/jo-chemla/terrain-viewer/blob/main/components.json |
| index.html | https://github.com/jo-chemla/terrain-viewer/blob/main/index.html |
| index.html | https://github.com/jo-chemla/terrain-viewer/blob/main/index.html |
| package-lock.json | https://github.com/jo-chemla/terrain-viewer/blob/main/package-lock.json |
| package-lock.json | https://github.com/jo-chemla/terrain-viewer/blob/main/package-lock.json |
| package.json | https://github.com/jo-chemla/terrain-viewer/blob/main/package.json |
| package.json | https://github.com/jo-chemla/terrain-viewer/blob/main/package.json |
| pnpm-lock.yaml | https://github.com/jo-chemla/terrain-viewer/blob/main/pnpm-lock.yaml |
| pnpm-lock.yaml | https://github.com/jo-chemla/terrain-viewer/blob/main/pnpm-lock.yaml |
| terrain-viewer.jpg | https://github.com/jo-chemla/terrain-viewer/blob/main/terrain-viewer.jpg |
| terrain-viewer.jpg | https://github.com/jo-chemla/terrain-viewer/blob/main/terrain-viewer.jpg |
| tsconfig.json | https://github.com/jo-chemla/terrain-viewer/blob/main/tsconfig.json |
| tsconfig.json | https://github.com/jo-chemla/terrain-viewer/blob/main/tsconfig.json |
| vite.config.ts | https://github.com/jo-chemla/terrain-viewer/blob/main/vite.config.ts |
| vite.config.ts | https://github.com/jo-chemla/terrain-viewer/blob/main/vite.config.ts |
| README | https://github.com/jo-chemla/terrain-viewer |
| https://github.com/jo-chemla/terrain-viewer#terrain-visualization-modes |
| https://github.com/jo-chemla/terrain-viewer/blob/main/terrain-viewer.jpg |
| https://github.com/jo-chemla/terrain-viewer/blob/main/byod.jpg |
| demo screencast recording | https://www.dropbox.com/scl/fi/9m0gt1lonbo3sm1bqk3ha/elevation-terrain-viewer.mp4?rlkey=nqbo8w16q44f96sq126orr2k4&st=es40sopg&dl=0 |
| https://github.com/jo-chemla/terrain-viewer#features |
| Hillshade Methods PR #5768 | https://github.com/maplibre/maplibre-gl-js/pull/5768 |
| Hypsometric Tint PR #5913 | https://github.com/maplibre/maplibre-gl-js/pull/5913 |
| CPT City Color Ramps | http://seaviewsensing.com/pub/cpt-city/ |
| Contour Lines Discussion | https://github.com/maplibre/maplibre-style-spec/issues/583 |
| onthegomap/maplibre-contour | https://github.com/onthegomap/maplibre-contour |
| Local (offline) COG terrain sources | https://github.com/jo-chemla/terrain-viewer#local-offline-cog-terrain-sources |
| https://github.com/jo-chemla/terrain-viewer#getting-started |
| https://github.com/jo-chemla/terrain-viewer#installation |
| http://localhost:5173 | http://localhost:5173 |
| https://github.com/jo-chemla/terrain-viewer#procedure-for-non-geo-relief-visualization-frescoes-etc |
| guide | https://github.com/jo-chemla/terrain-viewer/blob/main/Non-Geo-Relief-Visualization.md |
| https://github.com/jo-chemla/terrain-viewer#local-offline-cog-terrain-sources |
| https://github.com/jo-chemla/terrain-viewer#local-cog-file-built-into-the-app |
| https://github.com/jo-chemla/terrain-viewer#localhost-static-file-server-works-today-zero-app-changes |
| vinayakkulkarni/tileserver-rs#1008 | https://github.com/vinayakkulkarni/tileserver-rs/issues/1008 |
| https://github.com/jo-chemla/terrain-viewer#slope-and-more-modes |
| https://github.com/jo-chemla/terrain-viewer#how-lrm-is-computed |
| https://github.com/jo-chemla/terrain-viewer#sky-view-factor-and-openness |
| Zakšek, Oštir & Kokalj, 2011 | https://www.mdpi.com/2072-4292/3/2/398 |
| https://github.com/jo-chemla/terrain-viewer#tells-mound-candidate-detection--beta |
| https://github.com/jo-chemla/terrain-viewer#known-limitation-resampling-quality-on-cog-streamed-sources |
| @geomatico/maplibre-cog-protocol | https://github.com/geomatico/maplibre-cog-protocol/ |
| https://github.com/jo-chemla/terrain-viewer#known-limitation-dem-resolution-ceiling-for-small-mounds |
| https://github.com/jo-chemla/terrain-viewer#related-literature |
| Zakšek, K., Oštir, K., Kokalj, Ž., 2011. Sky-View Factor as a Relief Visualization Technique. Remote Sensing 3(2): 398-415. | https://www.mdpi.com/2072-4292/3/2/398 |
| Kokalj, Ž., 2025. Standardizing visualization in ancient Maya lidar research: techniques, challenges and recommendations. Archaeological Prospection. | https://dx.doi.org/10.1002/arp.70002 |
| Remote Sensing 2026, 18(13), 2255 | https://www.mdpi.com/2072-4292/18/13/2255 |
| Menze & Ur, PNAS 2012 | https://www.pnas.org/doi/10.1073/pnas.1115472109 |
| Tapete, Traviglia, Delpozzo & Cigna, RS 2021 | https://www.mdpi.com/2072-4292/13/16/3106 |
| Trier et al., PNAS 2020 | https://www.pnas.org/doi/10.1073/pnas.2005583117 |
| Kokalj & Hesse, 2017 / RVT toolbox | https://github.com/EarthObservation/RVT |
| repo | https://github.com/EarthObservation/RVT_py |
| Gallwey et al., RS 2018 | https://doi.org/10.3390/rs10020225 |
| PMC7070870, "Geomorphometric Methods for Burial Mound Recognition" | https://ncbi.nlm.nih.gov/pmc/articles/PMC7070870 |
| Pistola, Orrù, Marchetti, Roccetti & Gordin, PLOS ONE 2025 | https://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0330419 |
| Rajani (Kandahar survey), PLOS ONE 2021 | https://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0259228 |
| https://github.com/jo-chemla/terrain-viewer#technologies |
| MapLibre GL v5 | https://maplibre.org/maplibre-gl-js/docs/ |
| React Map GL | https://visgl.github.io/react-map-gl/ |
| nuqs | https://nuqs.dev/docs/basic-usage |
| jotai | https://jotai.org/docs/utilities/storage |
| shadcn/ui components | https://ui.shadcn.com/docs/components |
| Tailwind CSS | https://tailwindcss.com/docs/styling-with-utility-classes |
| onthegomap/maplibre-contour | https://github.com/onthegomap/maplibre-contour |
| geomatico/maplibre-cog-protocol | https://github.com/geomatico/maplibre-cog-protocol/ |
| https://github.com/jo-chemla/terrain-viewer#inspiration |
| Mapterhorn | https://mapterhorn.com/ |
| Tangram Height Mapper | https://tangrams.github.io/heightmapper/ |
| Impasto CAS Viewer | https://impasto.dev/ |
| ui | https://x.com/codetaur/status/1968896182744207599 |
| modes | https://x.com/codetaur/status/1967783305866252557 |
| TSL/webgpu globe | https://x.com/codetaur/status/1986614344957006075 |
| threegs repo | https://github.com/ngwnos/threegs |
| Suggest it | https://github.com/mapterhorn/mapterhorn/issues/27 |
| https://github.com/jo-chemla/terrain-viewer#license |
| terrain-viewer.iconem.com/ | https://terrain-viewer.iconem.com/ |
| Readme | https://github.com/jo-chemla/terrain-viewer#readme-ov-file |
| Activity | https://github.com/jo-chemla/terrain-viewer/activity |
| 14 stars | https://github.com/jo-chemla/terrain-viewer/stargazers |
| 2 watching | https://github.com/jo-chemla/terrain-viewer/watchers |
| 3 forks | https://github.com/jo-chemla/terrain-viewer/forks |
| Report repository | https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fjo-chemla%2Fterrain-viewer&report=jo-chemla+%28user%29 |
|
| https://github.com |
| Terms | https://docs.github.com/site-policy/github-terms/github-terms-of-service |
| Privacy | https://docs.github.com/site-policy/privacy-policies/github-privacy-statement |
| Security | https://github.com/security |
| Status | https://www.githubstatus.com/ |
| Community | https://github.community/ |
| Docs | https://docs.github.com/ |
| Contact | https://support.github.com?tags=dotcom-footer |