【R】vapour
2021年9月4日
1. はじめに
vapour
は、low levelでGDALにアクセスできるパッケージです。
2. インストール
Githubからインストールします。
remotes::install_cran("vapour")
3. つかってみる
福生市の北側の地形のデータを取得して描画してみます。
library("vapour") elevation.tiles.prod <- tempfile(fileext = ".xml") writeLines('<GDAL_WMS> <Service name="TMS"> <ServerUrl>https://s3.amazonaws.com/elevation-tiles-prod/geotiff/${z}/${x}/${y}.tif</ServerUrl> </Service> <DataWindow> <UpperLeftX>-20037508.34</UpperLeftX> <UpperLeftY>20037508.34</UpperLeftY> <LowerRightX>20037508.34</LowerRightX> <LowerRightY>-20037508.34</LowerRightY> <TileLevel>14</TileLevel> <TileCountX>1</TileCountX> <TileCountY>1</TileCountY> <YOrigin>top</YOrigin> </DataWindow> <Projection>EPSG:3857</Projection> <BlockSizeX>512</BlockSizeX> <BlockSizeY>512</BlockSizeY> <BandsCount>1</BandsCount> <DataType>Int16</DataType> <ZeroBlockHttpCodes>403,404</ZeroBlockHttpCodes> <DataValues> <NoData>-32768</NoData> </DataValues> <Cache/> </GDAL_WMS>', elevation.tiles.prod) ex <- c(-1, 1, -1, 1) * 5000 pt <- cbind(139.287943, 35.817501) crs <- sprintf("+proj=laea +lon_0=%f +lat_0=%f +datum=WGS84", pt[1,1,drop = TRUE], pt[1,2, drop = TRUE]) dm <- c(256, 256) vals <- vapour::vapour_warp_raster(elevation.tiles.prod, extent = ex, dimension = dm, wkt = crs) image(m <- matrix(vals[[1]], nrow = dm[2], ncol = dm[1])[,dm[2]:1 ])
等高線表示にしてみます。
x <- list(x = seq(ex[1], ex[2], length.out = dm[1] + 1), y = seq(ex[3] ,ex[4], length.out = dm[1] + 1), z = m) image(x) library(raster) r <- setValues(raster(extent(ex), nrows = dm[2], ncols = dm[1], crs = crs), vals[[1]]) contour(r, add = TRUE)
4. さいごに
最近、あまり地図を描いてないなあ・・・。