# clear working directory
rm(list=ls())

library(raster)
## Loading required package: sp
library(ggplot2)

# First detrended DEM

setwd("~/Dropbox/BGU/Tal_Cohen/p_01_raster_values_quantiles/data") # setwd('N:\\Tal\\gis\\roughness\\ASCII\\19.10.16')
files = list.files(pattern = "\\.txt$")

rastervalues = NULL
final = NULL
for(inFile in files) {
  myIn = raster(inFile)
  myIn = myIn * 1000
  realData <- myIn[]
  myECDF <- ecdf(realData)
  x = seq(min(realData, na.rm=TRUE), max(realData, na.rm=TRUE), length.out=100)
  y = myECDF(x)
  dat = data.frame(
    x, y, 
    name = inFile,
    stringsAsFactors = FALSE
  )
  final = rbind(final, dat)
  val = data.frame(
      elev = realData,
      name = inFile,
      stringsAsFactors = FALSE
    )
    rastervalues = rbind(rastervalues, val)
}
rastervalues = rastervalues[!is.na(rastervalues$elev), ]

# Examine result
head(final)
##           x            y      name
## 1 -46.20079 1.447381e-06 bar_1.txt
## 2 -44.97872 2.272388e-04 bar_1.txt
## 3 -43.75665 9.132975e-04 bar_1.txt
## 4 -42.53458 1.635541e-03 bar_1.txt
## 5 -41.31251 2.586470e-03 bar_1.txt
## 6 -40.09044 3.903587e-03 bar_1.txt
tail(final)
##            x         y          name
## 795 48.99024 0.9996643 flat4_new.txt
## 796 49.99522 0.9997830 flat4_new.txt
## 797 51.00021 0.9998690 flat4_new.txt
## 798 52.00519 0.9999277 flat4_new.txt
## 799 53.01017 0.9999672 flat4_new.txt
## 800 54.01516 1.0000000 flat4_new.txt
head(rastervalues)
##         elev      name
## 859 33.23616 bar_1.txt
## 860 35.28116 bar_1.txt
## 861 36.87033 bar_1.txt
## 862 37.46021 bar_1.txt
## 863 38.74188 bar_1.txt
## 864 40.04066 bar_1.txt
tail(rastervalues)
##              elev          name
## 25959171 53.85053 flat4_new.txt
## 25959172 53.57552 flat4_new.txt
## 25959173 52.95861 flat4_new.txt
## 25959174 53.04146 flat4_new.txt
## 25959175 52.93798 flat4_new.txt
## 25959176 53.02095 flat4_new.txt
final$type = substr(final$name, 1, 3)
final$num = gsub('\\D+','', final$name)
rastervalues$type = substr(rastervalues$name, 1, 3)
rastervalues$num = gsub('\\D+','', rastervalues$name)

# Density of raster values
ggplot(rastervalues, aes(x = elev, fill = num)) +
  geom_density(alpha = 0.25) +
  facet_grid(type ~ .)

# Plot
ggplot(final, aes(x = x, y = y, colour = num, linetype = type)) +
  geom_line() +
  scale_x_continuous(
    "Size",
    limits = c(-150, 150), 
    breaks = seq(from = -150, to = 150, by = 50),
    labels = round(seq(from = -150, to = 150, by = 50), 2)
  ) +
  scale_y_continuous("Cumulative (%)") +
  theme_bw()

########################################################################

# clear working directory
rm(list=ls())

library(plyr)
library(raster)
library(ggplot2)
library(e1071)
## 
## Attaching package: 'e1071'
## The following object is masked from 'package:raster':
## 
##     interpolate
# First detrended DEM

setwd("~/Dropbox/BGU/Tal_Cohen/p_01_raster_values_quantiles/data") # setwd('N:\\Tal\\gis\\roughness\\ASCII\\19.10.16')
files = list.files(pattern = "\\.txt$")

types = substr(files, 1, 3)

rastervalues = NULL
final = NULL
for(type in types) {
  typevalues = NULL
  for(inFile in files[types == type]) {
    myIn = raster(inFile)
    myIn = myIn * 1000
    realData <- myIn[]
    typevalues = c(typevalues, realData)
  }
  myECDF <- ecdf(typevalues)
    x = seq(min(typevalues, na.rm=TRUE), max(typevalues, na.rm=TRUE), length.out=100)
    y = myECDF(x)
    dat = data.frame(
      x, y, 
      name = type,
      stringsAsFactors = FALSE
    )
    final = rbind(final, dat)
    val = data.frame(
      elev = typevalues,
      name = type,
      stringsAsFactors = FALSE
    )
    rastervalues = rbind(rastervalues, val)
}
rastervalues = rastervalues[!is.na(rastervalues$elev), ]

# Examine result
head(final)
##           x            y name
## 1 -85.51580 1.760382e-07  bar
## 2 -83.26362 8.801912e-07  bar
## 3 -81.01145 2.622970e-05  bar
## 4 -78.75928 1.431191e-04  bar
## 5 -76.50711 3.538369e-04  bar
## 6 -74.25493 6.140214e-04  bar
tail(final)
##            x         y name
## 795 80.63376 0.9999793  fla
## 796 81.97617 0.9999865  fla
## 797 83.31857 0.9999903  fla
## 798 84.66097 0.9999928  fla
## 799 86.00338 0.9999980  fla
## 800 87.34578 1.0000000  fla
head(rastervalues)
##         elev name
## 859 33.23616  bar
## 860 35.28116  bar
## 861 36.87033  bar
## 862 37.46021  bar
## 863 38.74188  bar
## 864 40.04066  bar
tail(rastervalues)
##               elev name
## 103836954 53.85053  fla
## 103836955 53.57552  fla
## 103836956 52.95861  fla
## 103836957 53.04146  fla
## 103836958 52.93798  fla
## 103836959 53.02095  fla
# Density of raster values
ggplot(rastervalues, aes(x = elev, fill = name)) +
  geom_density(alpha = 0.25)

# Plot
ggplot(final, aes(x = x, y = y, colour = name, linetype = name)) +
  geom_line() +
  scale_x_continuous(
    "Size",
    limits = c(-150, 150), 
    breaks = seq(from = -150, to = 150, by = 50),
    labels = round(seq(from = -150, to = 150, by = 50), 2)
  ) +
  scale_y_continuous("Cumulative (%)") +
  theme_bw()

# Statistics - ECDF
tab = ddply(
  final,
  "name",
  summarize,
  q05 = quantile(y, probs = 0.05),
  q16 = quantile(y, probs = 0.16),
  q50 = quantile(y, probs = 0.5),
  q84 = quantile(y, probs = 0.84),
  q95 = quantile(y, probs = 0.95),
  sd = sd(y),
  kurtosis = kurtosis(y)
)
tab
##   name          q05        q16      q50       q84       q95        sd
## 1  bar 0.0006010121 0.01265176 0.860720 0.9989522 0.9999556 0.4242226
## 2  fla 0.0008569272 0.02049738 0.970043 0.9999116 0.9999797 0.4267965
##    kurtosis
## 1 -1.609663
## 2 -1.463008
# write.csv(tab, "tab.csv", row.names = FALSE)

# Statistics - ECDF
tab1 = ddply(
  rastervalues,
  "name",
  summarize,
  q05 = quantile(elev, probs = 0.05),
  q16 = quantile(elev, probs = 0.16),
  q50 = quantile(elev, probs = 0.5),
  q84 = quantile(elev, probs = 0.84),
  q95 = quantile(elev, probs = 0.95),
  sd = sd(elev),
  kurtosis = kurtosis(elev),
  mean = mean(elev)
)
tab1
##   name       q05        q16       q50      q84      q95       sd kurtosis
## 1  bar -36.35633 -21.047231 0.7351041 23.74136 40.65323 23.75135 0.955106
## 2  fla -17.48431  -9.442985 0.5496144 10.99813 17.95375 10.98315 1.069536
##        mean
## 1 1.2543416
## 2 0.4978649
# write.csv(tab1, "tab1.csv", row.names = FALSE)

########################################################################

# clear working directory
rm(list=ls())

library(plyr)
library(raster)
library(ggplot2)
library(e1071)

# First detrended DEM

setwd("~/Dropbox/BGU/Tal_Cohen/p_01_raster_values_quantiles/data") # setwd('N:\\Tal\\gis\\roughness\\ASCII\\19.10.16')
files = list.files(pattern = "\\.txt$")

rastervalues = NULL
final = NULL
for(file in files) {
  filevalues = NULL
  myIn = raster(file)
  myIn = myIn * 1000
  realData <- myIn[]
  filevalues = c(filevalues, realData)
  myECDF <- ecdf(filevalues)
  x = seq(min(filevalues, na.rm=TRUE), max(filevalues, na.rm=TRUE), length.out=100)
  y = myECDF(x)
  dat = data.frame(
    x, y, 
    name = file,
    stringsAsFactors = FALSE
  )
  final = rbind(final, dat)
  val = data.frame(
    elev = filevalues,
    name = file,
    stringsAsFactors = FALSE
  )
  rastervalues = rbind(rastervalues, val)
}
rastervalues = rastervalues[!is.na(rastervalues$elev), ]

# Examine result
head(final)
##           x            y      name
## 1 -46.20079 1.447381e-06 bar_1.txt
## 2 -44.97872 2.272388e-04 bar_1.txt
## 3 -43.75665 9.132975e-04 bar_1.txt
## 4 -42.53458 1.635541e-03 bar_1.txt
## 5 -41.31251 2.586470e-03 bar_1.txt
## 6 -40.09044 3.903587e-03 bar_1.txt
tail(final)
##            x         y          name
## 795 48.99024 0.9996643 flat4_new.txt
## 796 49.99522 0.9997830 flat4_new.txt
## 797 51.00021 0.9998690 flat4_new.txt
## 798 52.00519 0.9999277 flat4_new.txt
## 799 53.01017 0.9999672 flat4_new.txt
## 800 54.01516 1.0000000 flat4_new.txt
head(rastervalues)
##         elev      name
## 859 33.23616 bar_1.txt
## 860 35.28116 bar_1.txt
## 861 36.87033 bar_1.txt
## 862 37.46021 bar_1.txt
## 863 38.74188 bar_1.txt
## 864 40.04066 bar_1.txt
tail(rastervalues)
##              elev          name
## 25959171 53.85053 flat4_new.txt
## 25959172 53.57552 flat4_new.txt
## 25959173 52.95861 flat4_new.txt
## 25959174 53.04146 flat4_new.txt
## 25959175 52.93798 flat4_new.txt
## 25959176 53.02095 flat4_new.txt
# Density of raster values
ggplot(rastervalues, aes(x = elev, fill = name)) +
  geom_density(alpha = 0.25)

# Plot
ggplot(final, aes(x = x, y = y, colour = name, linetype = name)) +
  geom_line() +
  scale_x_continuous(
    "Size",
    limits = c(-150, 150), 
    breaks = seq(from = -150, to = 150, by = 50),
    labels = round(seq(from = -150, to = 150, by = 50), 2)
  ) +
  scale_y_continuous("Cumulative (%)") +
  theme_bw()

# Statistics - ECDF
tab = ddply(
  final,
  "name",
  summarize,
  q05 = quantile(y, probs = 0.05),
  q16 = quantile(y, probs = 0.16),
  q50 = quantile(y, probs = 0.5),
  q84 = quantile(y, probs = 0.84),
  q95 = quantile(y, probs = 0.95),
  sd = sd(y),
  kurtosis = kurtosis(y)
)
tab
##            name          q05         q16       q50       q84       q95
## 1     bar_1.txt 0.0038377312 0.049618022 0.7884312 0.9938062 0.9989426
## 2      bar2.txt 0.0011887113 0.016334777 0.7725735 0.9981279 0.9996272
## 3      bar3.txt 0.0005071380 0.015174912 0.9203551 0.9984146 0.9993352
## 4  bar4newb.txt 0.0097851005 0.102079744 0.9184718 0.9990118 0.9999051
## 5     flat1.txt 0.0001037852 0.009522049 0.7089112 0.9984467 0.9996702
## 6 flat2_new.txt 0.0002096575 0.006352209 0.7634972 0.9995992 0.9998568
## 7 flat3_new.txt 0.0010685214 0.012811855 0.9740051 0.9997972 0.9999534
## 8 flat4_new.txt 0.0007050874 0.025828822 0.5383820 0.9962271 0.9996702
##          sd  kurtosis
## 1 0.3938868 -1.486669
## 2 0.4174689 -1.647658
## 3 0.4266219 -1.556260
## 4 0.3863469 -1.212720
## 5 0.4406260 -1.804811
## 6 0.4375298 -1.767853
## 7 0.4306220 -1.483118
## 8 0.4050482 -1.705278
# write.csv(tab, "tab.csv", row.names = FALSE)

# Statistics - ECDF
tab1 = ddply(
  rastervalues,
  "name",
  summarize,
  q05 = quantile(elev, probs = 0.05),
  q16 = quantile(elev, probs = 0.16),
  q50 = quantile(elev, probs = 0.5),
  q84 = quantile(elev, probs = 0.84),
  q95 = quantile(elev, probs = 0.95),
  sd = sd(elev),
  kurtosis = kurtosis(elev),
  mean = mean(elev)
)
tab1
##            name       q05        q16        q50       q84       q95
## 1     bar_1.txt -26.77466 -16.704657 -1.4427240 18.796151 32.765107
## 2      bar2.txt -39.10840 -25.364218  1.5677210 27.549557 44.003407
## 3      bar3.txt -25.65387 -14.742271  1.4896690 17.207030 32.009986
## 4  bar4newb.txt -42.07639 -23.525521 -0.8345842 24.438555 46.639464
## 5     flat1.txt -15.60789  -8.006394  0.2566576 10.677671 15.546059
## 6 flat2_new.txt -12.05655  -7.544558  0.1411438  6.055854  9.301591
## 7 flat3_new.txt -16.11497  -9.532332  0.4805326 10.646084 16.561929
## 8 flat4_new.txt -25.81322 -15.152033  2.4253130 17.694229 22.788409
##          sd   kurtosis       mean
## 1 18.245296  0.3814870  0.3352742
## 2 26.472995  0.2980146  1.4620484
## 3 18.013250  2.6557628  1.8575508
## 4 26.115906  0.8692506  0.5746597
## 5  9.899647  1.1822108  0.5520368
## 6  6.642285  0.1531999 -0.4801201
## 7 10.524702  1.4840665  0.4565730
## 8 15.315681 -0.4806180  1.3862402
# write.csv(tab1, "tab1.csv", row.names = FALSE)