Project

General

Profile

« Previous | Next » 

Revision f12b574f

Added by Jim Regetz over 13 years ago

  • ID f12b574f15970c6a5de78483182b2c1cbba5c291

added R code to 'enblend' DEMs (multires splines, Burt & Adelson, 1983)

View differences:

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