{"id":18722555,"url":"https://github.com/mdsumner/rema-ovr","last_synced_at":"2026-01-24T09:01:32.810Z","repository":{"id":209230426,"uuid":"723508724","full_name":"mdsumner/rema-ovr","owner":"mdsumner","description":"REMA v2 overviews","archived":false,"fork":false,"pushed_at":"2025-12-21T08:12:36.000Z","size":189,"stargazers_count":3,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-23T01:47:00.110Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mdsumner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-25T22:16:24.000Z","updated_at":"2025-12-21T08:12:40.000Z","dependencies_parsed_at":"2023-11-30T04:25:47.427Z","dependency_job_id":"eccb0aa5-2081-45c0-a7b0-466e8fe2fb76","html_url":"https://github.com/mdsumner/rema-ovr","commit_stats":null,"previous_names":["mdsumner/rema-ovr"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mdsumner/rema-ovr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdsumner%2Frema-ovr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdsumner%2Frema-ovr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdsumner%2Frema-ovr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdsumner%2Frema-ovr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdsumner","download_url":"https://codeload.github.com/mdsumner/rema-ovr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdsumner%2Frema-ovr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28721975,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T08:27:05.734Z","status":"ssl_error","status_checked_at":"2026-01-24T08:27:01.197Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T13:42:00.035Z","updated_at":"2026-01-24T09:01:32.766Z","avatar_url":"https://github.com/mdsumner.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# REMA v2\n\nWe have created a VRT with efficient overviews, so a GDAL-capable software can read any portion very efficiently. \n\nThe DSN is here: \n\n```\n/vsicurl/https://raw.githubusercontent.com/mdsumner/rema-ovr/main/REMA-2m_dem_ovr.vrt \n```\n\nSize is 2725100, 2921100\n\n## Examples\n\nUse the warper, it will target the right level of detail. This works as well in Python osgeo.gdal as it does at the command line and in R's terra (there's some gotchas still in terra). \n\n\n\n```python\nfrom osgeo import gdal\nimport rasterio\n\ngdal.UseExceptions()\n\n## Davis in EPSG:3031\npt = [2302286, 490792]\ndsn = \"/vsicurl/https://raw.githubusercontent.com/mdsumner/rema-ovr/main/REMA-2m_dem_ovr.vrt\"\nds = gdal.Open(dsn)\nr = 500\ngdal.Warp(\"/tmp/davis.tif\", ds,  outputBounds = [pt[0] - r, pt[1] - r, pt[0] + r, pt[1] + r])\n#\u003cosgeo.gdal.Dataset; proxy of \u003cSwig Object of type 'GDALDatasetShadow *' at 0x7f566106efc0\u003e \u003e\n\nr = rasterio.open(\"/tmp/davis.tif\")\nr.shape\n#(500, 500)\n# array([[[17.632812, 17.632812, 17.632812, ..., 17.648438, 17.648438,\n#          17.648438],\n#         [17.632812, 17.632812, 17.632812, ..., 17.648438, 17.648438,\n#          17.648438],\n#         [17.632812, 17.632812, 17.632812, ..., 17.648438, 17.648438,\n#          17.648438],\n#         ...,\n#         [17.648438, 17.648438, 17.648438, ..., 31.132812, 31.109375,\n#          31.0625  ],\n#         [17.648438, 17.648438, 17.648438, ..., 31.09375 , 31.070312,\n#          31.03125 ],\n#         [17.648438, 17.648438, 17.648438, ..., 31.070312, 31.039062,\n#          31.015625]]], dtype=float32)\n```\n\n\n\n\n```R\nlibrary(terra)\nrema \u003c- rast(\"/vsicurl/https://raw.githubusercontent.com/mdsumner/rema-ovr/main/REMA-2m_dem_ovr.vrt\")\nrema\n#class       : SpatRaster \n#dimensions  : 2921100, 2725100, 1  (nrow, ncol, nlyr)\n#resolution  : 2, 2  (x, y)\n#extent      : -2700100, 2750100, -2500100, 3342100  (xmin, xmax, ymin, ymax)\n#coord. ref. : WGS 84 / Antarctic Polar Stereographic (EPSG:3031) \n#source      : REMA-2m_dem_ovr.vrt \n#name        : REMA-2m_dem_ovr \n\nplot(project(rema, rast(), by_util = TRUE))\n\nplot(project(rema, aggregate(rast(rema), 1e4), by_util = TRUE))\n\n```\n\n\n\n![image](https://github.com/mdsumner/rema-ovr/assets/4107631/1d257f68-fd3b-4296-9b20-67193031aaf5)\n\n\n![image](https://github.com/mdsumner/rema-ovr/assets/4107631/869b4426-a8ca-43ba-a3f5-79fe9656df07)\n\n\n\nWe can get exactly the level we want, say let's hit the 1km: \n\n\n```R\nr1km \u003c- project(rema, rast(ext(rema), res = 1000, crs  = crs(rema)), by_util = TRUE)\nr1km\n#class       : SpatRaster \n#dimensions  : 5842, 5450, 1  (nrow, ncol, nlyr)\n#resolution  : 1000, 1000  (x, y)\n#extent      : -2700100, 2749900, -2500100, 3341900  (xmin, xmax, ymin, ymax)\n#coord. ref. : WGS 84 / Antarctic Polar Stereographic (EPSG:3031) \n#source(s)   : memory\n#name        : REMA-2m_dem_ovr \n#min value   :       -66.44531 \n#max value   :      4639.31250\n\nplot(crop(r1km, ext(0, xmax(r1km), 0, ymax(r1km))))\n\n\n```\n\n\n![image](https://github.com/mdsumner/rema-ovr/assets/4107631/230e331a-8828-4f37-95a8-2a9ee9845e93)\n\n\n\n```R\nex \u003c- c(2301786, 490292, 2302786, 491292)[c(1, 3, 2, 4)]\nr_davis \u003c- project(rema, rast(ext(ex), res = 2, crs  = crs(rema)), by_util = TRUE)\nr_davis\n# class       : SpatRaster \n# dimensions  : 500, 500, 1  (nrow, ncol, nlyr)\n# resolution  : 2, 2  (x, y)\n# extent      : 2301786, 2302786, 490292, 491292  (xmin, xmax, ymin, ymax)\n# coord. ref. : WGS 84 / Antarctic Polar Stereographic (EPSG:3031) \n# source(s)   : memory\n# name        : REMA-2m_dem_ovr \n# min value   :        17.63281 \n# max value   :        44.60938 \n\n\nplot(r_davis, col = hcl.colors(64))\n```\n\n![image](https://github.com/mdsumner/rema-ovr/assets/4107631/e82d7a66-9bbd-46aa-b0d8-55e0bc38f3cd)\n\n\n\n## PS. Don't use these files below, they are fyi\n\n Use the single-end-point VRT above with the warper :)\n\nThese files are involved along with the 2m DEM tiles of the original 2m VRT. \n\n```\nhttps://raw.githubusercontent.com/mdsumner/rema-ovr/main/rema-vrt/10m_dem_tiles.vrt\nhttps://raw.githubusercontent.com/mdsumner/rema-ovr/main/rema-vrt/32m_dem_tiles.vrt\nhttps://github.com/mdsumner/rema-ovr/raw/main/rema_mosaic_100m_v2.0_filled_cop30_dem_int16.tif\nhttps://github.com/mdsumner/rema-ovr/raw/main/rema_mosaic_500m_v2.0_filled_cop30_dem.tif\nhttps://github.com/mdsumner/rema-ovr/raw/main/rema_mosaic_1km_v2.0_filled_cop30_dem.tif\n```\n\nThe .vrt files are provided by REMA v2 itself. The 500m and 1km tifs are also provided by REMA, but in very slow-to-acccess tarballs. They are copied here. \n\nThe 100m is a conversion of the `rema_mosaic_100m_v2.0_dem.tif` to remove overviews, use sparse tiles, and Int16 storage  so it's small enough for Github. \n\nWe use the filled_cop30 in preference. \n\n## File conversion\n\n\n```\ngdal_translate rema_mosaic_100m_v2.0_filled_cop30_dem.tif rema_mosaic_100m_v2.0_filled_cop30_dem_int16.tif -of COG -co COMPRESS=LZW -co SPARSE_OK=YES -co OVERVIEWS=NONE -ot Int16\n```\n\n(this one is not used by the VRT): rema_mosaic_100m_v2.0_dem_int16.tif was created with \n\n```\ngdal_translate rema_mosaic_100m_v2.0_dem.tif -of COG -co COMPRESS=ZSTD -co SPARSE_OK=YES -co OVERVIEWS=NONE out.tif -ot Int16\n```\n\n\n\n## Code of Conduct\n  \nPlease note that the rema-ovr project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/1/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdsumner%2Frema-ovr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdsumner%2Frema-ovr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdsumner%2Frema-ovr/lists"}