Project

General

Profile

Download (1.74 KB) Statistics
| Branch: | Revision:
1
# Code to produce enblended DEM (i.e., using multiresolution splines as
2
# described by Burt & Adelson 1983) in the 60N boundary region. After
3
# appropriately preparing the SRTM and ASTER layers, this code makes a
4
# system call to run 'enblend' (v. 4.0) on the inputs, then
5
# post-processes the resulting image to yield a single band geotiff with
6
# datatype of 16bit signed integer, matching the input data.
7
#
8
# Somewhat arbitrarily, in the code below the input DEMs are prepped
9
# such that the area of SRTM/ASTER overlap is the first 75 rows below
10
# 60N (i.e., a zone extending ~6.75km south of the boundary).
11
#
12
# Jim Regetz
13
# NCEAS
14

    
15
library(raster)
16

    
17
demdir <- "/home/regetz/media/temp/terrain/dem"
18

    
19
# read in aster data
20
aster <- raster(file.path(demdir, "aster_300straddle.tif"))
21
# create alpha layer for aster
22
alpha <- aster
23
alpha[] <- 0
24
alpha[1:225, ] <- 1
25
# write enblend-ready tif out to disk
26
writeRaster(brick(aster, alpha), file="aster-enblend.tif",
27
    options="ALPHA=YES")
28

    
29
# read in srtm
30
srtm.lower <- raster("../srtm_150below.tif")
31
# expand to match full image (i.e., same extent as aster), holding srtm
32
# data below 60N and nothing above
33
srtm <- aster
34
srtm[] <- NA
35
srtm[151:300, ] <- values(srtm.lower)
36
# create alpha layer for srtm
37
alpha <- srtm
38
alpha[] <- 0
39
alpha[151:300, ] <- 1
40
writeRaster(brick(srtm, alpha), file="srtm-enblend.tif",
41
    options="ALPHA=YES")
42

    
43
# run 'enblend'
44
system(paste("enblend --verbose=6 -o enblend.tif",
45
    "aster-enblend.tif srtm-enblend.tif"))
46

    
47
# post-process enblended DEM
48
e <- raster("enblend.tif")
49
e2 <- aster
50
# round to nearest integer, and write out the result as a geotiff
51
e2[] <- as.integer(round(values(e), 0))
52
writeRaster(e2, file=file.path(demdir, "fused_300straddle_enblend.tif"),
53
    options="COMPRESS=NONE", datatype="INT2S")
(11-11/23)