Revision acf2afb2
Added by Rick Reeves over 13 years ago
- ID acf2afb27bccf73c2fc8cd8f5581a102b2333bbe
terrain/rscripts/CreateImageDiffPlotsOverlayNewPlots.R | ||
---|---|---|
31 | 31 |
# TODO: add symbol legend to each plot. |
32 | 32 |
# Author: Rick Reeves, NCEAS |
33 | 33 |
# May 14, 2011 |
34 |
# May 17, 2011: This version generates 'delta scatterplots' specified by Mark and Jim. |
|
34 | 35 |
############################################################################################## |
35 |
CreateImageDiffPlotsNew <- function(plotSampFact = 100)
|
|
36 |
CreateImageDiffPlots <- function(plotSampFact = 1)
|
|
36 | 37 |
{ |
37 | 38 |
# Check plotSampleFact range |
38 | 39 |
|
39 | 40 |
if (plotSampFact < 1) |
40 | 41 |
plotSampFact = 1 |
41 | 42 |
|
42 |
if (plotSampFact > 100)
|
|
43 |
plotSampFact = 100 |
|
43 |
# if (plotSampFact > )
|
|
44 |
# plotSampFact = 100
|
|
44 | 45 |
|
45 | 46 |
# Read input table that was sorted OFFLINE in Excel on the first column (ColumnID) |
46 | 47 |
|
47 |
pointTable <-read.csv("tableForMark4000_5_8_SortColID.csv") |
|
48 |
|
|
48 |
pointTable <-read.csv("pixelPairs36000_5_8EvenSortCol1.csv") |
|
49 | 49 |
# Table created by randomly sampling from two superimposed |
50 | 50 |
# image: |
51 | 51 |
# 1) DOM mosaic image comprised of ASTER and SRTM components. |
... | ... | |
136 | 136 |
|
137 | 137 |
# We need to tailor the plot 'triplet' X and Y axes to the dynamic ranges of all three data sets. |
138 | 138 |
|
139 |
par(mfrow=c(1,3)) # Create a three column multi-plot |
|
140 | 139 |
|
141 |
# Create values for the 'delta across pixel boundaries' plot |
|
140 |
|
|
141 |
# Create values for the three 'delta across pixel boundaries' plots: |
|
142 |
# 1) Y-Axis: columnIDs |
|
143 |
# 2) Y-Axis: CDEM elevations |
|
144 |
# 3) Y-Axis: |
|
142 | 145 |
|
143 | 146 |
deltaBoundaryASTER <- northRowTbl$diffNorthMosaicCDEM - northRowTbl$diffSouthMosaicCDEM |
144 | 147 |
deltaBoundaryBorder <- borderRowTbl$diffNorthMosaicCDEM - borderRowTbl$diffSouthMosaicCDEM |
145 | 148 |
deltaBoundarySRTM <- southRowTbl$diffNorthMosaicCDEM - southRowTbl$diffSouthMosaicCDEM |
149 |
|
|
150 |
normDeltaBoundaryASTER <- (deltaBoundaryASTER / northRowTbl$cdemNorth * 100) |
|
151 |
normDeltaBoundaryBorder <- (deltaBoundaryBorder / borderRowTbl$cdemNorth * 100) |
|
152 |
normDeltaBoundarySRTM <- (deltaBoundarySRTM / southRowTbl$cdemNorth * 100) |
|
153 |
|
|
154 |
par(mfrow=c(1,3)) # Create a three column multi-plot |
|
155 |
|
|
146 | 156 |
commonXAxis <- c(0,max(pointTable$ColumnID)) |
147 | 157 |
commonYAxis <- range(c(deltaBoundarySRTM,deltaBoundaryBorder,deltaBoundaryASTER),na.rm=TRUE) |
148 | 158 |
|
149 | 159 |
xAxisLbl <- sprintf("M/SD: ASTER: %.2f / %.2f",mean(deltaBoundaryASTER,na.rm=TRUE),sd(deltaBoundaryASTER,na.rm=TRUE)) |
150 |
plot(northRowTbl$ColumnID,deltaBoundaryASTER,xlim=commonXAxis, ylim=commonYAxis,main="Difference along Row Boundary: ASTER",xlab=xAxisLbl,col="red",pch=plotCh1)
|
|
160 |
plot(northRowTbl$ColumnID,deltaBoundaryASTER,xlim=commonXAxis, ylim=commonYAxis,main="Row Boundary Delta: ASTER",xlab=xAxisLbl,col="red",pch=plotCh1)
|
|
151 | 161 |
|
152 | 162 |
xAxisLbl <- sprintf("M/SD: BORDER: %.2f / %.2f",mean(deltaBoundaryBorder,na.rm=TRUE),sd(deltaBoundaryBorder,na.rm=TRUE)) |
153 |
plot(northRowTbl$ColumnID,deltaBoundaryBorder,xlim=commonXAxis, ylim=commonYAxis,main="Difference along Row Boundary: Border",xlab=xAxisLbl,col="darkgreen",pch=plotCh2)
|
|
163 |
plot(northRowTbl$ColumnID,deltaBoundaryBorder,xlim=commonXAxis, ylim=commonYAxis,main="Row Boundary Delta: Border",sub="E-W Col",xlab=xAxisLbl,col="darkgreen",pch=plotCh2)
|
|
154 | 164 |
|
155 | 165 |
xAxisLbl <- sprintf("M/SD: SRTM: %.2f / %.2f",mean(deltaBoundarySRTM,na.rm=TRUE),sd(deltaBoundarySRTM,na.rm=TRUE)) |
156 |
plot(northRowTbl$ColumnID,deltaBoundarySRTM,main="Difference along Row Boundary: SRTM",xlim=commonXAxis, ylim=commonYAxis,xlab=xAxisLbl,col="blue",pch=plotCh3) |
|
157 |
message("Three-Plot done") |
|
158 |
browser() |
|
159 |
dev.new() |
|
160 |
deltaBoundary <- southRowTbl$diffNorthMosaicCDEM - southRowTbl$diffSouthMosaicCDEM |
|
161 |
xAxisLbl <- sprintf("M/SD: SRTM: %.2f / %.2f",mean(deltaBoundary,na.rm=TRUE),sd(deltaBoundary,na.rm=TRUE)) |
|
162 |
plot(northRowTbl$ColumnID,deltaBoundary,main="Difference along Row Boundary: Border",xlab=xAxisLbl,col="red",pch=plotCh1) |
|
166 |
plot(northRowTbl$ColumnID,deltaBoundarySRTM,main="Row Boundary Delta: SRTM",xlim=commonXAxis, ylim=commonYAxis,xlab=xAxisLbl,col="blue",pch=plotCh3) |
|
167 |
|
|
168 |
message("ColumnID-X-Axis is done") |
|
163 | 169 |
browser() |
164 |
xAxisLbl <- sprintf("M/SD: AST: %.2f / %.2f BRD: %.2f / %.2f STM: %.2f / %.2f",mean(northRowTbl$elevSouth,na.rm=TRUE),sd(northRowTbl$elevSouth,na.rm=TRUE), |
|
165 |
mean(borderRowTbl$elevSouth,na.rm=TRUE),sd(borderRowTbl$elevSouth,na.rm=TRUE), |
|
166 |
mean(southRowTbl$elevSouth,na.rm=TRUE),sd(southRowTbl$elevSouth,na.rm=TRUE)) |
|
167 |
plot(northRowTbl$ColumnID,northRowTbl$elevSouth,main="South Mosaic Pixel Elev: ASTER (red) Border (green) SRTM (blue)",xlab=xAxisLbl,col="red",pch=plotCh1) |
|
168 |
points(borderRowTbl$ColumnID,borderRowTbl$elevSouth,col="darkgreen",pch=plotCh2) |
|
169 |
points(southRowTbl$ColumnID,southRowTbl$elevSouth,col="blue",pch=plotCh3) |
|
170 |
#dev.new() |
|
171 |
|
|
172 |
par(mfrow=c(1,3)) # Create a three column multi-plot pointTable$diffNorthMosaicCDEM/pointTable$elevNorth * 100)) |
|
173 |
|
|
174 |
commonXAxis <- c(0,max(pointTable$cdemNorth)) |
|
175 |
commonYAxis <- range(c(deltaBoundarySRTM,deltaBoundaryBorder,deltaBoundaryASTER),na.rm=TRUE) |
|
176 |
|
|
177 |
xAxisLbl <- sprintf("M/SD: ASTER: %.2f / %.2f",mean(deltaBoundaryASTER,na.rm=TRUE),sd(deltaBoundaryASTER,na.rm=TRUE)) |
|
178 |
plot(northRowTbl$cdemNorth,deltaBoundaryASTER,xlim=commonXAxis, ylim=commonYAxis,main="Boundary Delta (CDEM Elev): ASTER",xlab=xAxisLbl,col="red",pch=plotCh1) |
|
179 |
|
|
180 |
xAxisLbl <- sprintf("M/SD: BORDER: %.2f / %.2f",mean(deltaBoundaryBorder,na.rm=TRUE),sd(deltaBoundaryBorder,na.rm=TRUE)) |
|
181 |
plot(northRowTbl$cdemNorth,deltaBoundaryBorder,xlim=commonXAxis, ylim=commonYAxis,main="Boundary Delta (CDEM Elev): Border",sub="vs Elev",xlab=xAxisLbl,col="darkgreen",pch=plotCh2) |
|
182 |
|
|
183 |
xAxisLbl <- sprintf("M/SD: SRTM: %.2f / %.2f",mean(deltaBoundarySRTM,na.rm=TRUE),sd(deltaBoundarySRTM,na.rm=TRUE)) |
|
184 |
plot(northRowTbl$cdemNorth,deltaBoundarySRTM,main="Boundary Delta (CDEM Elev): SRTM",xlim=commonXAxis, ylim=commonYAxis,xlab=xAxisLbl,col="blue",pch=plotCh3) |
|
185 |
message("ColumnID-CDEM Elevation done") |
|
170 | 186 |
browser() |
171 |
dev.new() |
|
172 |
# Second plot pair: North/South CDEM pixel elevation for North/South subsets 'distance East from Western edge'. |
|
173 |
|
|
174 |
xAxisLbl <- sprintf("M/SD: AST: %.2f / %.2f BRD: %.2f / %.2f STM: %.2f / %.2f",mean(northRowTbl$cdemNorth,na.rm=TRUE),sd(northRowTbl$cdemNorth,na.rm=TRUE), |
|
175 |
mean(borderRowTbl$cdemNorth,na.rm=TRUE),sd(borderRowTbl$cdemNorth,na.rm=TRUE), |
|
176 |
mean(southRowTbl$cdemNorth,na.rm=TRUE),sd(southRowTbl$cdemNorth,na.rm=TRUE)) |
|
177 |
plot(northRowTbl$ColumnID,northRowTbl$cdemNorth,main="North CDEM Pixel Elev ASTER (r) Border (g) SRTM (b)",xlab=xAxisLbl,col="red",pch=plotCh1) |
|
178 |
points(borderRowTbl$ColumnID,borderRowTbl$cdemNorth,col="darkgreen",pch=plotCh2) |
|
179 |
points(southRowTbl$ColumnID,southRowTbl$cdemNorth,col="blue",pch=plotCh3) |
|
180 |
browser() |
|
181 |
dev.new() |
|
182 |
xAxisLbl <- sprintf("M/SD: AST: %.2f / %.2f BRD: %.2f / %.2f STM: %.2f / %.2f",mean(northRowTbl$cdemSouth,na.rm=TRUE),sd(northRowTbl$cdemSouth,na.rm=TRUE), |
|
183 |
mean(borderRowTbl$cdemSouth,na.rm=TRUE),sd(borderRowTbl$cdemSouth,na.rm=TRUE), |
|
184 |
mean(southRowTbl$cdemSouth,na.rm=TRUE),sd(southRowTbl$cdemSouth,na.rm=TRUE)) |
|
185 |
plot(northRowTbl$ColumnID,northRowTbl$cdemSouth,main="South CDEM Pixel Elev ASTER (r) Border (g) SRTM (b)",xlab=xAxisLbl,col="red",pch=plotCh1) |
|
186 |
points(borderRowTbl$ColumnID,borderRowTbl$cdemSouth,col="darkgreen",pch=plotCh2) |
|
187 |
points(southRowTbl$ColumnID,southRowTbl$cdemSouth,col="blue",pch=plotCh3) |
|
187 |
commonXAxis <- c(0,max(pointTable$cdemNorth)) |
|
188 |
commonYAxis <- range(c(normDeltaBoundarySRTM,normDeltaBoundaryBorder,normDeltaBoundaryASTER),na.rm=TRUE) |
|
189 |
|
|
190 |
xAxisLbl <- sprintf("M/SD: ASTER: %.2f / %.2f",mean(normDeltaBoundaryASTER,na.rm=TRUE),sd(normDeltaBoundaryASTER,na.rm=TRUE)) |
|
191 |
plot(northRowTbl$cdemNorth,normDeltaBoundaryASTER,xlim=commonXAxis, ylim=commonYAxis,main="Norm Bdry Delta (CDEM Elev): ASTER",xlab=xAxisLbl,col="red",pch=plotCh1) |
|
192 |
|
|
193 |
xAxisLbl <- sprintf("M/SD: BORDER: %.2f / %.2f",mean(normDeltaBoundaryBorder,na.rm=TRUE),sd(normDeltaBoundaryBorder,na.rm=TRUE)) |
|
194 |
plot(northRowTbl$cdemNorth,normDeltaBoundaryBorder,xlim=commonXAxis, ylim=commonYAxis,main="Norm Bdry Delta (CDEM Elev): Border",sub="vs Elev",xlab=xAxisLbl,col="darkgreen",pch=plotCh2) |
|
195 |
|
|
196 |
xAxisLbl <- sprintf("M/SD: SRTM: %.2f / %.2f",mean(normDeltaBoundarySRTM,na.rm=TRUE),sd(normDeltaBoundarySRTM,na.rm=TRUE)) |
|
197 |
plot(northRowTbl$cdemNorth,normDeltaBoundarySRTM,main="Norm Bdry Delta (CDEM Elev): SRTM",xlim=commonXAxis, ylim=commonYAxis,xlab=xAxisLbl,col="blue",pch=plotCh3) |
|
198 |
message("NORMALIZED ColumnID-CDEM Elevation done") |
|
188 | 199 |
browser() |
189 |
dev.new() |
|
200 |
commonXAxis <- c(0,max(pointTable$ColumnID)) |
|
201 |
commonYAxis <- range(c(normDeltaBoundarySRTM,normDeltaBoundaryBorder,normDeltaBoundaryASTER),na.rm=TRUE) |
|
202 |
|
|
203 |
xAxisLbl <- sprintf("M/SD: ASTER: %.2f / %.2f",mean(normDeltaBoundaryASTER,na.rm=TRUE),sd(normDeltaBoundaryASTER,na.rm=TRUE)) |
|
204 |
plot(northRowTbl$ColumnID,normDeltaBoundaryASTER,xlim=commonXAxis, ylim=commonYAxis,main="Norm Bdry Delta: ASTER",xlab=xAxisLbl,col="red",pch=plotCh1) |
|
205 |
|
|
206 |
xAxisLbl <- sprintf("M/SD: BORDER: %.2f / %.2f",mean(normDeltaBoundaryBorder,na.rm=TRUE),sd(normDeltaBoundaryBorder,na.rm=TRUE)) |
|
207 |
plot(northRowTbl$ColumnID,normDeltaBoundaryBorder,xlim=commonXAxis, ylim=commonYAxis,main="Norm Bdry Delta: Border",sub="E-W Col",xlab=xAxisLbl,col="darkgreen",pch=plotCh2) |
|
190 | 208 |
|
191 |
message("All plots created - hit key to delete them...") |
|
209 |
xAxisLbl <- sprintf("M/SD: SRTM: %.2f / %.2f",mean(normDeltaBoundarySRTM,na.rm=TRUE),sd(normDeltaBoundarySRTM,na.rm=TRUE)) |
|
210 |
plot(northRowTbl$ColumnID,normDeltaBoundarySRTM,main="Norm Bdry Delta: SRTM",xlim=commonXAxis, ylim=commonYAxis,xlab=xAxisLbl,col="blue",pch=plotCh3) |
|
211 |
|
|
212 |
message("NORMALIZED ColumnID-X-Axis is done...") |
|
213 |
message("...All plots created - hit key to delete them...") |
|
192 | 214 |
browser() |
193 | 215 |
graphics.off() |
194 | 216 |
} |
Also available in: Unified diff
This version creates the (normalized) difference image plots
that Rick, Jim, and Mark are reviewing as part of the final 'ASTER/SRTM boundary analysis' work.
The input file pixelPairs36000_5_8EvenSortCol1.csv also checked in.