Revision f12b574f
Added by Jim Regetz over 13 years ago
- ID f12b574f15970c6a5de78483182b2c1cbba5c291
terrain/dem/enblend.R | ||
---|---|---|
1 |
# Code to produce enblended DEM (i.e., using multiresolution splines as |
|
2 |
# described by Burt & Adelson 1983) in the 60N boundary region. |
|
3 |
# |
|
4 |
# This code makes a system call to run 'enblend' (v. 4.0) on the |
|
5 |
# prepared ASTER and SRTM layers, and then post-processes the resulting |
|
6 |
# image to yield a single band geotiff with datatype of 16bit signed |
|
7 |
# integer, matching the input data. |
|
8 |
# |
|
9 |
# Somewhat arbitrarily, in the code below I prep the input data such |
|
10 |
# that the area of overlap is the first 75 rows below 60N (i.e., a zone |
|
11 |
# extending ~6.75km south of the boundary). |
|
12 |
# |
|
13 |
# Jim Regetz |
|
14 |
# NCEAS |
|
15 |
# Created on 29-Jun-2011 |
|
16 |
|
|
17 |
library(raster) |
|
18 |
|
|
19 |
demdir <- "/home/regetz/media/temp/terrain/dem" |
|
20 |
|
|
21 |
# read in aster data |
|
22 |
aster <- raster(file.path(demdir, "aster_300straddle.tif")) |
|
23 |
# create alpha layer for aster |
|
24 |
alpha <- aster |
|
25 |
alpha[] <- 0 |
|
26 |
alpha[1:225, ] <- 1 |
|
27 |
# write enblend-ready tif out to disk |
|
28 |
writeRaster(brick(aster, alpha), file="aster-enblend.tif", |
|
29 |
options="ALPHA=YES") |
|
30 |
|
|
31 |
# read in srtm |
|
32 |
srtm.lower <- raster("../srtm_150below.tif") |
|
33 |
# expand to match full image (i.e., same extent as aster), holding srtm |
|
34 |
# data below 60N and nothing above |
|
35 |
srtm <- aster |
|
36 |
srtm[] <- NA |
|
37 |
srtm[151:300, ] <- values(srtm.lower) |
|
38 |
# create alpha layer for srtm |
|
39 |
alpha <- srtm |
|
40 |
alpha[] <- 0 |
|
41 |
alpha[151:300, ] <- 1 |
|
42 |
writeRaster(brick(srtm, alpha), file="srtm-enblend.tif", |
|
43 |
options="ALPHA=YES") |
|
44 |
|
|
45 |
|
|
46 |
# DO ENBLEND HERE |
|
47 |
system(paste("enblend --verbose=6 -o enblend.tif", |
|
48 |
"aster-enblend.tif srtm-enblend.tif")) |
|
49 |
|
|
50 |
# post-process enblended DEM |
|
51 |
e <- raster("enblend.tif") |
|
52 |
e2 <- aster |
|
53 |
# round to nearest integer |
|
54 |
e2[] <- as.integer(round(values(e2), 0)) |
|
55 |
writeRaster(e2, file=file.path(demdir, "fused_300straddle_enblend.tif"), |
|
56 |
options="COMPRESS=NONE", datatype="INT2S") |
Also available in: Unified diff
added R code to 'enblend' DEMs (multires splines, Burt & Adelson, 1983)