├── .gitignore ├── README.md ├── Data ├── geo.tif ├── HunterValley4Practicals.RData ├── DataThreeWoredasEthiopia.RData ├── CovariatesThreeWoredasEthiopia.RData ├── StrataSize.csv ├── Stratifiedrandomsample.csv └── EMUzbekistan_25m.csv ├── FKMSampling.docx ├── LHSample_50(0.5).Rdata ├── SupplementaryFigures.pdf ├── Supplement.Rproj ├── SpatialCoverageSample.R ├── StratifiedRandomSampling.R ├── FKMSample_FuzME.R ├── KMSample.R ├── Validation.R ├── SpatialCoveragePlusSample.R ├── SpatialInfillSample.R ├── NestedSampling_v1.R ├── StatisticalTesting.R ├── ModelbasedSample_KED_spsann.R ├── ModelBasedGridSpacingOK_MeanKV.R ├── ModelbasedSample_SSA_OK.R ├── NestedSampling_v2.R ├── cLHS_spsann.R ├── ModelbasedSample_SSA_KED.R ├── SI_PointPairs.R ├── cLHS.R ├── ModelBasedGridSpacingKED_MeanKV.R ├── ModelBasedSample_SSA_EK.R ├── BayesianGridSpacing.R └── Functions4SSA.R /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .RData 4 | .Ruserdata 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TutorialSampling4DSM 2 | R scripts for sampling for digital soil mapping 3 | -------------------------------------------------------------------------------- /Data/geo.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DickBrus/TutorialSampling4DSM/HEAD/Data/geo.tif -------------------------------------------------------------------------------- /FKMSampling.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DickBrus/TutorialSampling4DSM/HEAD/FKMSampling.docx -------------------------------------------------------------------------------- /LHSample_50(0.5).Rdata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DickBrus/TutorialSampling4DSM/HEAD/LHSample_50(0.5).Rdata -------------------------------------------------------------------------------- /SupplementaryFigures.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DickBrus/TutorialSampling4DSM/HEAD/SupplementaryFigures.pdf -------------------------------------------------------------------------------- /Data/HunterValley4Practicals.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DickBrus/TutorialSampling4DSM/HEAD/Data/HunterValley4Practicals.RData -------------------------------------------------------------------------------- /Data/DataThreeWoredasEthiopia.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DickBrus/TutorialSampling4DSM/HEAD/Data/DataThreeWoredasEthiopia.RData -------------------------------------------------------------------------------- /Data/CovariatesThreeWoredasEthiopia.RData: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DickBrus/TutorialSampling4DSM/HEAD/Data/CovariatesThreeWoredasEthiopia.RData -------------------------------------------------------------------------------- /Data/StrataSize.csv: -------------------------------------------------------------------------------- 1 | strata ID,Number of Pixels 2 | 1,64426 3 | 2,13973 4 | 3,92209 5 | 4,107873 6 | 5,24315 7 | 6,239235 8 | 7,101433 9 | 8,46188 10 | -------------------------------------------------------------------------------- /Supplement.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | -------------------------------------------------------------------------------- /SpatialCoverageSample.R: -------------------------------------------------------------------------------- 1 | library(sp) 2 | library(spcosa) 3 | 4 | #Load data 5 | 6 | load("Data/CovariatesThreeWoredasEthiopia.RData") 7 | 8 | #Change class into SpatialPointsDataFrame and next into SpatialPixelsDataFrame 9 | 10 | coordinates(grdEthiopia)<-~s1+s2 11 | gridded(grdEthiopia)<-TRUE 12 | 13 | #Set number of sampling locations to be selected 14 | 15 | n<-100 16 | 17 | #Compute compact geostrata 18 | 19 | set.seed(314) 20 | myStrata <- stratify(grdEthiopia, nStrata = n, nTry=10) 21 | plot(myStrata) 22 | getObjectiveFunctionValue(myStrata) 23 | 24 | #Select the centres of the geostrata with function spsample 25 | 26 | mySample <- spsample(myStrata) 27 | 28 | #Plot geostrata and sampling points (centres of geostrata) 29 | 30 | plot(myStrata, mySample) 31 | 32 | #Write sampling points to csv file 33 | 34 | #first change class of mySample to data.frame 35 | mySample<-as(mySample,"data.frame") 36 | write.csv(mySample,file="mySampleEthiopia.csv") -------------------------------------------------------------------------------- /StratifiedRandomSampling.R: -------------------------------------------------------------------------------- 1 | library(sampling) 2 | library(raster) 3 | 4 | #read data 5 | rmap <- raster("Data/geo.tif") 6 | grd <- as(rmap,"SpatialPixelsDataFrame") 7 | gridded(grd)<-F 8 | grd <- as(grd,"data.frame") 9 | 10 | #delete rows with geo = 99 (water) 11 | ids <- which(grd$geo==99) 12 | grd <- grd[-ids,] 13 | 14 | #select stratified simple random sample 15 | 16 | #first sort units on geo 17 | unique(grd$geo) 18 | grd <- grd[order(grd$geo),] 19 | 20 | #compute stratum sample sizes for proportional allocation 21 | Nh <- tapply(grd$x,INDEX=grd$geo,FUN=length) 22 | wh <- Nh/sum(Nh) 23 | 24 | #set total sample size 25 | n <- 62 26 | nh <- round(wh*n) 27 | sum(nh) 28 | 29 | #minimum stratum sample size is 2, so increase nh for stratum 2 by 1, and reduce sample szie of stratum 6 by 1 30 | nh[2] <- nh[2]+1 31 | nh[6] <- nh[6]-1 32 | 33 | set.seed(314) 34 | units<-strata(grd,stratanames="geo",size=nh,method="srswr") 35 | mysample<-getdata(grd,units) 36 | 37 | # select random location within selected pixel 38 | resolution <-res(rmap) 39 | mysample$x <- jitter(mysample$x,resolution[1]/2) 40 | mysample$y <- jitter(mysample$y,resolution[1]/2) 41 | 42 | write.csv(mysample,file="ValidationSample.csv",row.names=F) -------------------------------------------------------------------------------- /FKMSample_FuzME.R: -------------------------------------------------------------------------------- 1 | # read data 2 | load(file="Data/HunterValley4Practicals.RData") 3 | 4 | # read memberships computed with FuzMe 5 | m <- read.csv(file="Data/20_class.txt",sep="") 6 | m <- m[,-c(1,2,3)] 7 | 8 | # defuzzify, i.e. compute for each gridcell the cluster wth largest membership 9 | grdHunterValley$cluster <- apply(m,MARGIN=1,which.max) 10 | 11 | n <- ncol(m)-3 12 | 13 | #select locations with largest membership in cluster 1...k 14 | units <- apply(m,MARGIN=2,FUN=which.max) 15 | myFKMSample <- grdHunterValley[units,] 16 | 17 | #plot clusters and sampling points 18 | #pdf(file = "FKMSample_phi13_HunterValley.pdf", width = 7, height = 7) 19 | ggplot(grdHunterValley) + 20 | geom_raster(mapping = aes(x = Easting, y = Northing, fill = factor(cluster))) + 21 | scale_fill_discrete(name = "cluster") + 22 | geom_point(data=myFKMSample,mapping=aes(x=Easting,y=Northing),size=2) + 23 | scale_x_continuous(name = "") + 24 | scale_y_continuous(name = "") + 25 | coord_fixed() + 26 | theme(legend.position="none") 27 | #dev.off() 28 | 29 | #pdf(file = "Scatterplot_FKMSample_phi13_HunterValley.pdf", width = 7, height = 7) 30 | ggplot(grdHunterValley) + 31 | geom_point(mapping=aes(y=elevation_m,x=cti,colour=factor(cluster))) + 32 | geom_point(data=myFKMSample,mapping=aes(y=elevation_m,x=cti),size=2) + 33 | scale_y_continuous(name = "Elevation") + 34 | scale_x_continuous(name = "CTI") + 35 | theme(legend.position="none") 36 | #dev.off() 37 | -------------------------------------------------------------------------------- /KMSample.R: -------------------------------------------------------------------------------- 1 | library(sp) 2 | library(fields) 3 | library(ggplot2) 4 | 5 | #Read data with coordinates and other attributes of fine grid (discretization of study area) 6 | 7 | load(file="Data/HunterValley4Practicals.RData") 8 | summary(grdHunterValley) 9 | cor(grdHunterValley[,c(3,4,5,6,7)]) 10 | 11 | #Set number of sampling locations to be selected 12 | 13 | n<-20 14 | 15 | #Compute clusters 16 | 17 | set.seed(314) 18 | myClusters <- kmeans(scale(grdHunterValley[,c(3,4,5,6,7)]), centers=n, iter.max=100,nstart=10) 19 | grdHunterValley$clusters <- myClusters$cluster 20 | 21 | #Select locations closest to the centers of the clusters 22 | 23 | rdist.out <- rdist(x1=myClusters$centers,x2=scale(grdHunterValley[,c(3,4,5,6,7)])) 24 | ids.mindist <- apply(rdist.out,MARGIN=1,which.min) 25 | mySample <- grdHunterValley[ids.mindist,] 26 | 27 | #Plot clusters and sampling points 28 | 29 | pdf(file = "KMSample_HunterValley.pdf", width = 7, height = 7) 30 | ggplot(grdHunterValley) + 31 | geom_tile(mapping = aes(x = Easting, y = Northing, fill = factor(clusters))) + 32 | scale_fill_discrete(name = "cluster") + 33 | geom_point(data=mySample,mapping=aes(x=Easting,y=Northing),size=2) + 34 | scale_x_continuous(name = "") + 35 | scale_y_continuous(name = "") + 36 | coord_fixed() + 37 | theme(legend.position="none") 38 | dev.off() 39 | 40 | pdf(file = "Scatterplot_KMSample_HunterValley.pdf", width = 7, height = 7) 41 | ggplot(grdHunterValley) + 42 | geom_point(mapping=aes(y=elevation_m,x=cti,colour=factor(clusters))) + 43 | geom_point(data=mySample,mapping=aes(y=elevation_m,x=cti),size=2) + 44 | scale_y_continuous(name = "Elevation") + 45 | scale_x_continuous(name = "CTI") + 46 | theme(legend.position="none") 47 | dev.off() 48 | -------------------------------------------------------------------------------- /Validation.R: -------------------------------------------------------------------------------- 1 | library(ggplot2) 2 | 3 | #read validation sample data 4 | d<-read.csv(file="Data/Stratifiedrandomsample.csv",header=T) 5 | 6 | #compute squared errors 7 | d$e2KED <- (d$SOM_A_hori - d$KED)^2 8 | d$e2RF <- (d$SOM_A_hori - d$RF)^2 9 | 10 | 11 | #compute stratum sample sizes 12 | (nh<-tapply(d$SOM_A_hori,INDEX=d$stratum,FUN=length)) 13 | 14 | #read sizes of strata 15 | strata<-read.csv(file="Data/StrataSize.csv",header=T) 16 | names(strata)[1] <- "stratum" 17 | 18 | #compute stratum weights 19 | Nh <- strata$Number.of.Pixels 20 | wh <- Nh/sum(Nh) 21 | 22 | #estimate MSE 23 | me2KED_h<-tapply(d$e2KED,INDEX=d$stratum,FUN=mean) 24 | (mseKED<-sum(wh*me2KED_h)) 25 | 26 | me2RF_h<-tapply(d$e2RF,INDEX=d$stratum,FUN=mean) 27 | (mseRF<-sum(wh*me2RF_h)) 28 | 29 | #estimate standard error of estimated mean squared error 30 | 31 | #Note that in stratum 2 there is only 1 point 32 | #A solution is to collapse strata 2 and 1 (strata 1 and 2 are similar geological units) 33 | 34 | #collapse strata with 1 point only 35 | levels<-sort(unique(d$stratum)) 36 | collapsedstrata<-c(1,1,2,3,4,5,6,7) 37 | lut <- data.frame(stratum = levels, collapsedstrata) 38 | d <- merge(x = d, y = lut) 39 | (strata <- merge(x = strata, y = lut)) 40 | 41 | #estimate sample sizes and total number of pixels per collapsed stratum 42 | nhc<-tapply(d$SOM_A_hori,INDEX=d$collapsedstrata,FUN=length) 43 | Nhc<-tapply(strata$Number.of.Pixels,INDEX=strata$collapsedstrata,FUN=sum) 44 | 45 | #compute collapsed stratum weights and estimate standard errors 46 | whc<-Nhc/sum(Nhc) 47 | 48 | vare2KED_h<-tapply(d$e2KED,INDEX=d$collapsedstrata,FUN=var) 49 | (sdmseKED<-sqrt(sum(whc^2*vare2KED_h/nhc))) 50 | 51 | vare2RF_h<-tapply(d$e2RF,INDEX=d$collapsedstrata,FUN=var) 52 | (sdmseRF<-sqrt(sum(whc^2*vare2RF_h/nhc))) -------------------------------------------------------------------------------- /SpatialCoveragePlusSample.R: -------------------------------------------------------------------------------- 1 | library(spcosa) 2 | library(sp) 3 | 4 | #Read data with coordinates and other attributes of fine grid (discretization of study area) 5 | 6 | load(file="Data/HunterValley4Practicals.RData") 7 | grd <- grdHunterValley 8 | 9 | head(grd) 10 | N <- nrow(grd) 11 | 12 | # Choose number of locations of spatial coverage sample 13 | 14 | n<-90 15 | 16 | #Compute clusters (geostrata) and select centres 17 | 18 | coordinates(grd)<- ~Easting+Northing 19 | gridded(grd)<-TRUE 20 | set.seed(314) 21 | myStrata <- stratify(grd, nStrata = n, equalArea=FALSE, nTry=10) 22 | mySCsample <- spsample(myStrata) 23 | 24 | # Compute average distance between neighbouring points of spatial coverage sample 25 | gridTopology <- as(getGridTopology(grd), "data.frame") 26 | A <- N * gridTopology$cellsize[1]^2 27 | d <- sqrt(A/n) 28 | 29 | # Specify separation distances and subsample sizes 30 | h <- c(20) 31 | m <- c(10) 32 | 33 | # Select random subsample from the spatial coverage sample 34 | 35 | mySCsample.df <- as(mySCsample, "data.frame") 36 | set.seed(314) 37 | ids <-sample(nrow(mySCsample.df),sum(m)) 38 | mySubsample <- mySCsample.df[ids,] 39 | 40 | # Select locations in random direction at distances h from subsample 41 | 42 | first<-1 43 | final<-cumsum(m) 44 | plus <- NULL 45 | for (i in 1:length(h)) { 46 | dxy <- matrix(nrow=m[i],ncol=2) 47 | angle<-runif(n=m[i],min=0,max=2*pi) 48 | dxy[,1]=h[i]*sin(angle) 49 | dxy[,2]=h[i]*cos(angle) 50 | plus.h<-mySubsample[c(first:final[i]),]+dxy 51 | plus <- rbind(plus,plus.h) 52 | first <- final[i]+1 53 | } 54 | 55 | # Plot strata, spatial coverage sample and supplemental sample 56 | 57 | library(ggplot2) 58 | pdf(file = "SpatialCoveragePlusSample.pdf", width = 7, height = 7) 59 | plot(myStrata,mySCsample) + 60 | geom_point(data = plus, mapping = aes(x= Easting, y =Northing), shape =2,size=1.5 ) 61 | dev.off() -------------------------------------------------------------------------------- /SpatialInfillSample.R: -------------------------------------------------------------------------------- 1 | # Loading R packages 2 | 3 | library(sp) 4 | library(spcosa) 5 | library(ggplot2) 6 | 7 | #Load data.frame with coordinates (and other attributes) of fine grid (discretization of study area) 8 | load("Data/CovariatesThreeWoredasEthiopia.RData") 9 | 10 | #Load existing sampling points 11 | load(file="Data/DataThreeWoredasEthiopia.RData") 12 | 13 | #Plot prior points 14 | ggplot(data = as.data.frame(priordataEthiopia)) + 15 | geom_raster(data=grdEthiopia,mapping = aes(x = s1,y = s2),fill="grey") + 16 | geom_point(mapping = aes(x = s1,y = s2),size = 2) + 17 | scale_x_continuous(name = "Easting (km)") + 18 | scale_y_continuous(name = "Northing (km)") + 19 | coord_equal(ratio = 1) 20 | 21 | #Construct compact geostrata for spatial infill sampling of 100 points, and select an infill sample of 100 points. 22 | 23 | #Change class of grdEthiopia from data.frame to SpatialPixelsDataFrame 24 | coordinates(grdEthiopia)<-~s1+s2 25 | gridded(grdEthiopia)<-TRUE 26 | 27 | #Set number of new sampling locations to be selected 28 | n<-100 29 | 30 | #Compute total sample size (existing points + new points) 31 | ntot<-n+length(priordataEthiopia) 32 | 33 | #Change class of d (existing points) from SpatialPointsDataFrame to SpatialPoints 34 | priordataEthiopia<-as(priordataEthiopia,"SpatialPoints") 35 | 36 | #grdEthiopia does not have projection attributes, whereas d does. Remove projection attributes of d 37 | proj4string(grdEthiopia) 38 | proj4string(priordataEthiopia)<- NA_character_ 39 | 40 | #Compute geostrata with option priorPoints=priordataEthiopia 41 | set.seed(314) 42 | myStrata <- stratify(grdEthiopia, nStrata = ntot, priorPoints=priordataEthiopia, nTry=10) 43 | 44 | #Select sampling points of infill sample (centres of geostrata) 45 | mySample <- spsample(myStrata) 46 | 47 | #Plot geostrata and sampling points (centres of geostrata) 48 | plot(myStrata, mySample) 49 | 50 | 51 | #In mySample both prior points (listed first) and new points are listed. Whether a point is prior or new is stored in the slot isPriorPoint. Determine how many new points are sampled. 52 | 53 | #Select the new points from mySample 54 | ids <- which(mySample@isPriorPoint==F) 55 | 56 | #Change class of mySample to data.frame 57 | mySample <- as(mySample,"data.frame") 58 | mySamplenew <- mySample[ids,] -------------------------------------------------------------------------------- /NestedSampling_v1.R: -------------------------------------------------------------------------------- 1 | # Version of nested sampling in which in each stage 1 point is selected 2 | # at some chosen distance h from all points selected in previous stages 3 | 4 | # Only for balanced nested samples! 5 | 6 | library(sp) 7 | library(gstat) 8 | library(ggplot2) 9 | 10 | #Define fucntion for random selection of point at some chosen distance from starting point 11 | SelectPoint<-function(start,h,area){ 12 | dxy<-numeric(length=2) 13 | inArea<-NA 14 | while(is.na(inArea)) { 15 | angle<-runif(n=1,min=0,max=2*pi) 16 | dxy[1]=h*sin(angle) 17 | dxy[2]=h*cos(angle) 18 | xypnt<-start+dxy 19 | coordinates(xypnt)<-~s1+s2 20 | inArea<-as.numeric(over(x=xypnt,y=area))[1] 21 | } 22 | xypoint<-as.data.frame(xypnt) 23 | xypoint 24 | } 25 | #Read field of interest 26 | 27 | load(file="Data/HunterValley4Practicals.RData") 28 | grd <- grdHunterValley 29 | names(grd)[c(1,2)] <- c("s1","s2") 30 | 31 | 32 | grid<-grd #data frame needed later for selection of main station 33 | coordinates(grd) <- c("s1","s2") 34 | gridded(grd) <- T 35 | 36 | #Define separation distances 37 | lags<-c(625,125,25,5,1) 38 | 39 | # select main station 40 | set.seed(314) 41 | id <- sample.int(nrow(grid),1) 42 | mainstation <- grid[id,c(1,2)] 43 | 44 | #select randomly one point at distance lag[1] from main station 45 | newpnt<-SelectPoint(start=mainstation,h=lags[1],area=grd) 46 | allstarts<-rbind(mainstation,newpnt) 47 | 48 | for (j in 2:length(lags)) { 49 | newpnts<-NULL 50 | for (i in 1:nrow(allstarts)) { 51 | pnts<-SelectPoint(start=allstarts[i,],h=lags[j],area=grd) 52 | newpnts <- rbind(newpnts,pnts) 53 | } 54 | allstarts <- rbind(allstarts,newpnts) 55 | } 56 | 57 | nestedsample <- allstarts 58 | 59 | #Note that code below must be adapted when number of lags is changed 60 | nestedsample$l1<-rep(seq(1:2)) 61 | nestedsample$l2<-rep(rep(seq(1:2),each=2),times=8) 62 | nestedsample$l3<-rep(rep(seq(1:2),each=4),times=4) 63 | nestedsample$l4<-rep(rep(seq(1:2),each=8),times=2) 64 | 65 | #Once data are collected, data can be analyzed as follows 66 | library(nlme) 67 | lmodel <- lme(z~1,data=nestedsample,random=~1|l1/l2/l3/l4) 68 | out <- as.matrix(VarCorr(lmodel)) 69 | sigmas <- as.numeric(out[c(2,4,6,8,9),1]) 70 | ord <- sort(seq(1:length(lags)),decreasing=T) 71 | sigmas <- sigmas[ord] 72 | semivar <- cumsum(sigmas) 73 | 74 | -------------------------------------------------------------------------------- /StatisticalTesting.R: -------------------------------------------------------------------------------- 1 | #Read validation sample data 2 | d<-read.csv(file="Data/Stratifiedrandomsample.csv",header=T) 3 | 4 | #Compute errors and squared errors 5 | d$eKED <- d$SOM_A_hori - d$KED 6 | d$eRF <- d$SOM_A_hori - d$RF 7 | d$e2KED <- d$eKED^2 8 | d$e2RF <- d$eRF^2 9 | 10 | #Compute stratum sample sizes 11 | (nh<-tapply(d$SOM_A_hori,INDEX=d$stratum,FUN=length)) 12 | 13 | #Read sizes of strata 14 | strata<-read.csv(file="Data/StrataSize.csv",header=T) 15 | names(strata)[1] <- "stratum" 16 | 17 | #Compute stratum weights 18 | Nh <- strata$Number.of.Pixels 19 | wh <- Nh/sum(Nh) 20 | 21 | #Estimate population Mean Error (ME) for RF 22 | meRF_h<-tapply(d$eRF,INDEX=d$stratum,FUN=mean) 23 | (meRF<-sum(wh*meRF_h)) 24 | 25 | #Estimate standard error of estimated mean error 26 | 27 | #Note that in stratum 2 there is only 1 point 28 | #A solution is to collapse strata 2 and 1 (strata 1 and 2 are similar geological units) 29 | 30 | #Collapse strata with 1 point only 31 | levels<-sort(unique(d$stratum)) 32 | collapsedstrata<-c(1,1,2,3,4,5,6,7) 33 | lut <- data.frame(stratum = levels, collapsedstrata) 34 | d <- merge(x = d, y = lut) 35 | (strata <- merge(x = strata, y = lut)) 36 | 37 | #Estimate sample sizes and total number of pixels per collapsed stratum 38 | nhc<-tapply(d$SOM_A_hori,INDEX=d$collapsedstrata,FUN=length) 39 | Nhc<-tapply(strata$Number.of.Pixels,INDEX=strata$collapsedstrata,FUN=sum) 40 | 41 | #Compute collapsed stratum weights and estimate standard error of estimated ME 42 | whc<-Nhc/sum(Nhc) 43 | 44 | vareRF_h<-tapply(d$eRF,INDEX=d$collapsedstrata,FUN=var) 45 | (sdmeRF<-sqrt(sum(whc^2*vareRF_h/nhc))) 46 | 47 | #t test of hypothesis ME = 0 (no bias, systematic error = 0) 48 | t <- meRF/sdmeRF 49 | lowertail <- (t<0) 50 | df <- nrow(d) - length(unique(d$collapsedstrata)) 51 | (p <- 2*pt(t,df=df,lower.tail=lowertail)) 52 | 53 | 54 | #Paired t test of hypothesis MSE(KED) = MSE(RF) 55 | 56 | #Compute for each validation point differences of squared errors (paired differences) 57 | d$dife2 <- d$e2KED-d$e2RF 58 | mdife2_h<-tapply(d$dife2,INDEX=d$stratum,FUN=mean) 59 | (mdife2<-sum(wh*mdife2_h)) 60 | 61 | vardife2_h<-tapply(d$dife2,INDEX=d$collapsedstrata,FUN=var) 62 | (sdmdife2<-sqrt(sum(whc^2*vardife2_h/nhc))) 63 | 64 | t <- mdife2/sdmdife2 65 | lowertail <- (t<0) 66 | df <- nrow(d) - length(unique(d$collapsedstrata)) 67 | (p <- 2*pt(t,df=df,lower.tail=lowertail)) -------------------------------------------------------------------------------- /ModelbasedSample_KED_spsann.R: -------------------------------------------------------------------------------- 1 | library(sp) 2 | library(gstat) 3 | library(spsann) 4 | 5 | #Load grid with EMdata; the nodes of this grid are the potential sampling locations 6 | grid <- read.csv(file="Data/EMUzbekistan_25m.csv") 7 | gridded(grid) <- ~x1+x2 8 | boundary <- rgeos::gUnaryUnion(as(grid, "SpatialPolygons")) 9 | 10 | # residual variogram 11 | variogram <- vgm(nugget=0.1, psill=0.075, "Exp", range=100) 12 | 13 | gridded(grid)<-FALSE 14 | candi <- data.frame(x=coordinates(grid)[,1],y=coordinates(grid)[,2]) 15 | covars <- as(grid,"data.frame") 16 | covars <- covars[,c(3,4,1)] 17 | names(covars)[c(1,2)] <- c("x","y") 18 | 19 | schedule <- scheduleSPSANN(initial.acceptance = 0.8,initial.temperature = 0.002, 20 | temperature.decrease=0.95, 21 | chains=500, 22 | chain.length=5, 23 | stopping=10, 24 | x.min=25,y.min=25, 25 | cellsize=25) 26 | 27 | set.seed(321) 28 | res <- optimMKV( 29 | points = 50, candi = candi, covars=covars, vgm = variogram, 30 | eqn = z ~ lnEM1m, plotit = F, track=T, schedule = schedule) 31 | 32 | sample<-candi[res$points$id,] 33 | #add covariate to sample 34 | ids <- as.integer(rownames(sample)) 35 | sample$EM <- covars[ids,3] 36 | 37 | library(ggplot2) 38 | pdf(file = "KEDSample_Uzbekistan.pdf", width = 6, height = 4) 39 | ggplot(data = covars) + 40 | geom_raster(mapping = aes(x = x, y = y, fill = lnEM1m)) + 41 | geom_point(data = sample, mapping = aes(x = x, y = y), size=2,colour = "black") + 42 | # scale_fill_gradient(name="x",low = "skyblue", high = "darkblue") + 43 | scale_fill_continuous(name = "lnEMv1m", low = rgb(0, 0.2, 1), high = rgb(1, 0.2, 0)) + 44 | scale_y_continuous(name = "Northing") + 45 | scale_x_continuous(name = "Easting") + 46 | coord_equal() 47 | dev.off() 48 | 49 | pdf(file="TraceMKV_MBSample_SSA_OK_Square.pdf",width=6,height=4) 50 | ggplot(res$objective$energy) + 51 | geom_line(mapping = aes(x=1:nrow(res$objective$energy),y = obj),colour="red") + 52 | scale_y_continuous(name = "Mean Kriging Variance") + 53 | scale_x_continuous(name = "Chain") 54 | dev.off() 55 | 56 | pdf(file = "HistogramEMUzbekistan_Sample.pdf", width = 4, height = 3) 57 | ggplot(data = sample) + 58 | geom_histogram(mapping = aes(EM),breaks=seq(from=2.75,to=5,by=0.25),color="orange") 59 | dev.off() 60 | 61 | griddf <- as(grid,"data.frame") 62 | 63 | pdf(file = "HistogramEMUzbekistan_Population.pdf", width = 4, height = 3) 64 | ggplot(data = griddf) + 65 | geom_histogram(mapping = aes(EM),breaks=seq(from=2.75,to=5,by=0.25),color="orange") 66 | dev.off() 67 | -------------------------------------------------------------------------------- /ModelBasedGridSpacingOK_MeanKV.R: -------------------------------------------------------------------------------- 1 | library(gstat) 2 | library(ggplot2) 3 | library(sp) 4 | 5 | # Load data on soil organic carbon 6 | load(file="Data/DataThreeWoredasEthiopia.RData") 7 | head(priordataEthiopia) 8 | 9 | # Load file with discretisation grid 10 | load("Data/CovariatesThreeWoredasEthiopia.RData") 11 | head(grdEthiopia) 12 | 13 | # Estimate experimental variogram 14 | 15 | vg <- variogram(SOC~1, data = priordataEthiopia) 16 | plot(vg) 17 | 18 | # Fit variogram model 19 | 20 | vgfit <- fit.variogram(vg, model = vgm(psill = 0.6, model = "Sph", range = 40, nugget = 0.6)) 21 | plot(vg,vgfit) 22 | print(vgfit) 23 | 24 | # Select a simple random sample of size 1000 for evaluating the square grids. 25 | # Add a small number to the x-coordinates and y-coordinates by drawing from a uniform distribution with lower and upper limit equal to -cellsize/2 and +cellsize/2, respectively. This can be done with function jitter. 26 | 27 | set.seed(314) 28 | ids<-sample.int(nrow(grdEthiopia),size=1000) 29 | mysample<-grdEthiopia[ids,] 30 | 31 | # Shift the randomly selected points to random points within the cells (cellsize is 1 km x 1 km) 32 | 33 | mysample$s1 <- jitter(mysample$s1,0.5) 34 | mysample$s2 <- jitter(mysample$s2,0.5) 35 | 36 | coordinates(mysample)<-~s1+s2 37 | coordinates(grdEthiopia)<-~s1+s2 38 | gridded(grdEthiopia)<-TRUE 39 | 40 | #Define grid spacings 41 | 42 | spacing<-seq(from=5,to=12,by=1) 43 | 44 | #Set number of times grid sampling of a given spacing is repeated 45 | 46 | r<-10 47 | 48 | MKV<-samplesize<-matrix(nrow=length(spacing),ncol=r) 49 | for (i in 1:length(spacing)) { 50 | for (j in 1:r) { 51 | mygridxy<-spsample(x=grdEthiopia,cellsize=spacing[i],type="regular") 52 | mygrid<-data.frame(s1=mygridxy$x1,s2=mygridxy$x2,dummy=1) 53 | samplesize[i,j] <- nrow(mygrid) 54 | coordinates(mygrid)<-~s1+s2 55 | #Use gstat for ordinary kriging predictions 56 | predictions <- krige( 57 | dummy ~ 1, 58 | mygrid, 59 | newdata = mysample, 60 | model = vgfit, 61 | nmax = 100 62 | ) 63 | MKV[i,j]<-mean(predictions$var1.var) 64 | } 65 | } 66 | 67 | MMKV<-apply(MKV,MARGIN=1,FUN=mean) 68 | Msize<-apply(samplesize,MARGIN=1,FUN=mean) 69 | 70 | result<-data.frame(spacing,MKV,MMKV,samplesize,Msize) 71 | #write.csv(result,file="MOKVvsGridspacing_Ethiopia.csv",row.names=F) 72 | 73 | 74 | library(ggplot2) 75 | ggplot(data=result)+ 76 | geom_point(mapping=aes(x=spacing,y=MMKV),size=3)+ 77 | scale_x_continuous(name="Spacing (km)")+ 78 | scale_y_continuous(name="Mean Kriging Variance") 79 | 80 | #Plot the mean kriging variance against the sample size. 81 | 82 | ggplot(data=result)+ 83 | geom_point(mapping=aes(x=Msize,y=MKV),size=3)+ 84 | scale_x_continuous(name="Sample size")+ 85 | scale_y_continuous(name="Mean Kriging Variance") -------------------------------------------------------------------------------- /ModelbasedSample_SSA_OK.R: -------------------------------------------------------------------------------- 1 | library(spcosa) 2 | library(gstat) 3 | library(sp) 4 | 5 | # Source annealing functions 6 | source("Functions4SSA.R") 7 | 8 | # Load data.frame with coordinates (and other attributes) of fine grid (discretization of study area) 9 | load(file="Data/CovariatesThreeWoredasEthiopia.RData") 10 | grid <-grdEthiopia 11 | coordinates(grid) <- ~s1+s2 12 | gridded(grid) <- T 13 | 14 | # Load existing sampling points 15 | load(file="Data/DataThreeWoredasEthiopia.RData") 16 | 17 | # Subsample legacy sample (cellsize of grid = 1 km x 1 km) 18 | legacy <- remove.duplicates(priordataEthiopia,zero=1,remove.second=T) 19 | legacy <- as(legacy,"SpatialPoints") 20 | 21 | 22 | # Create prediction grid 'p' 23 | p <- spsample(x = grid, n = 1000, type = "regular", offset = c(0.5, 0.5)) 24 | 25 | # set number of new sampling locations to be selected 26 | n<-100 27 | 28 | # Compute total sample size (existing points + new points) 29 | ntot<-n+length(legacy) 30 | 31 | # Grid does not have projection attributes, whereas legacy does. Remove projection attributes of legacy 32 | proj4string(legacy)<- NA_character_ 33 | 34 | set.seed(314) 35 | myStrata <- stratify(grid,nStrata = ntot, priorPoints=legacy,equalArea=FALSE, nTry=1) 36 | mySample <- spsample(myStrata) 37 | plot(myStrata, mySample) 38 | 39 | # Select the new points from mySample 40 | ids <- which(mySample@isPriorPoint==F) 41 | 42 | # Change class of mySample 43 | infill <- as(mySample, "SpatialPoints") 44 | infill <- infill[ids,] 45 | 46 | # Estimate the variogram from legacy sample 47 | vg <- variogram(SOC~1,priordataEthiopia,cutoff=20) 48 | plot(vg) 49 | vgmfit <- fit.variogram(vg,model=vgm(psill=0.6, "Sph", range=40,nugget=0.6)) 50 | print(vgmfit) 51 | 52 | # Start the optimization 53 | annealingResult <- anneal.K( 54 | d = infill, 55 | g = grid, 56 | p = p, 57 | legacy=legacy, 58 | model=vgmfit, 59 | nmax=20, 60 | initialTemperature = 0.0005, 61 | coolingRate = 0.9, 62 | maxAccepted = 2*nrow(coordinates(infill)), 63 | maxPermuted = 2*nrow(coordinates(infill)), 64 | # maxNoChange = 2*nrow(coordinates(infill)), 65 | maxNoChange = 10, 66 | verbose = "TRUE" 67 | ) 68 | 69 | save(annealingResult,file="ModelBasedSample_OK_Ethiopia.RData") 70 | load("ModelBasedSample_OK_Ethiopia.RData") 71 | 72 | library(ggplot2) 73 | infillSampledf <-data.frame(annealingResult$optSample) 74 | legacy <- as(legacy,"data.frame") 75 | 76 | pdf(file = "ModelBasedInfillSample_OK_Ethiopia.pdf", width = 5, height = 5) 77 | ggplot() + 78 | geom_tile(grdEthiopia,mapping=aes(x=s1,y=s2),fill="grey")+ 79 | geom_point(data = infillSampledf, mapping = aes(x = s1, y = s2)) + 80 | geom_point(data = legacy, mapping = aes(x = s1, y = s2), shape=2) + 81 | coord_fixed() 82 | dev.off() 83 | 84 | traceMOKV <- annealingResult$Criterion 85 | pdf(file = "TraceMOKV_Ethiopia.pdf", width = 7, height = 7) 86 | ggplot() + 87 | geom_line(mapping=aes(x=1:length(traceMOKV),y=traceMOKV),colour="red")+ 88 | scale_x_continuous(name="Chain")+ 89 | scale_y_continuous(name="Mean ordinary kriging variance") 90 | dev.off() 91 | -------------------------------------------------------------------------------- /NestedSampling_v2.R: -------------------------------------------------------------------------------- 1 | library(sp) 2 | library(gstat) 3 | library(ggplot2) 4 | 5 | # Function for random selection of 1 point at distance h from starting point 6 | SelectPoint<-function(start,h,area){ 7 | dxy<-numeric(length=2) 8 | inArea<-NA 9 | while(is.na(inArea)) { 10 | angle<-runif(n=1,min=0,max=2*pi) 11 | dxy[1]=h*sin(angle) 12 | dxy[2]=h*cos(angle) 13 | xypnt<-start+dxy 14 | coordinates(xypnt)<-~s1+s2 15 | inArea<-as.numeric(over(x=xypnt,y=area))[1] 16 | } 17 | xypoint<-as.data.frame(xypnt) 18 | xypoint 19 | } 20 | 21 | # Function for random selection of pair of points with separation distance h; starting point is halfway the pair of points 22 | SelectPair<-function(start,h,area){ 23 | dxy<-numeric(length=2) 24 | xypoints<-NULL 25 | inArea1 <- inArea2 <- NA 26 | while(is.na(inArea1) | is.na(inArea2)) { 27 | angle<-runif(n=1,min=0,max=2*pi) 28 | dxy[1]=h*sin(angle)/2 29 | dxy[2]=h*cos(angle)/2 30 | xypnt1<-start+dxy 31 | coordinates(xypnt1)<-~s1+s2 32 | inArea1<-as.numeric(over(x=xypnt1,y=area))[1] 33 | dxy[1]=-dxy[1] 34 | dxy[2]=-dxy[2] 35 | xypnt2<-start+dxy 36 | coordinates(xypnt2)<-~s1+s2 37 | inArea2<-as.numeric(over(x=xypnt2,y=area))[1] 38 | } 39 | xypoints<-rbind(as.data.frame(xypnt1),as.data.frame(xypnt2)) 40 | xypoints 41 | } 42 | 43 | #Read field of interest 44 | 45 | load(file="Data/HunterValley4Practicals.RData") 46 | grd <- grdHunterValley 47 | names(grd)[c(1,2)] <- c("s1","s2") 48 | 49 | grid<-grd #data frame needed later for selection of main station 50 | coordinates(grd) <- c("s1","s2") 51 | gridded(grd) <- T 52 | 53 | 54 | #Define lags in number of cells 55 | cellsize<-25 56 | lags<-c(120,40,20,10) 57 | 58 | #Define for each stage the fraction of stations at which a pair of new stations is selected 59 | fr <- c(1,1,1,1,1) 60 | #For unbalanced designs choose 0.5 for last and/or one-but-last value of fr 61 | #fr <- c(1,1,1,1,0.5) 62 | #fr <- c(1,1,1,0.5,1) 63 | #fr <- c(1,1,1,0.5,0.5) 64 | 65 | # select main station 66 | set.seed(614) 67 | id <- sample.int(nrow(grid),1) 68 | mainstation <- grid[id,c(1,2)] 69 | 70 | #select randomly one point at distance lag[1] from main station 71 | h=lags[1]*cellsize 72 | pnt<-SelectPoint(start=mainstation,h=h,area=grd) 73 | stations<-rbind(mainstation,pnt) 74 | allunits <- NULL 75 | for (j in 2:length(lags)) { 76 | if(fr[j]<1){ 77 | nf <- nrow(stations)*fr[j] 78 | stations <- stations[1:nf,] 79 | #save stations not used in subsequent stages (these are units of nested sample) 80 | first <- nf+1 81 | last <- nrow(stations) 82 | units <- stations[first:last,] 83 | allunits <- rbind(allunits,units) 84 | } 85 | newstations<-NULL 86 | h=lags[j]*cellsize 87 | for (i in 1:nrow(stations)) { 88 | pnts<-SelectPair(start=stations[i,],h=h,area=grd) 89 | newstations <- rbind(newstations,pnts) 90 | } 91 | stations<-newstations 92 | } 93 | 94 | nestedsample <- rbind(allunits,stations) 95 | 96 | # Assign factor levels to selected units; these factors are needed for AOV 97 | # Number of factors is equal to number of stages - 1 98 | # Note that code below must be adapted for unbalanced designs and when number of lags is changed 99 | 100 | ntot <- nrow(nestedsample) 101 | nestedsample$level1 <- rep(seq(1:2),each=ntot/2) 102 | nestedsample$level2 <- rep(seq(1:2^2),each=ntot/2^2) 103 | nestedsample$level3 <- rep(seq(1:2^3),each=ntot/2^3) 104 | nestedsample$level4 <- rep(seq(1:2^4),each=ntot/2^4) 105 | 106 | #Once data are collected, data can be analyzed as follows 107 | library(nlme) 108 | lmodel <- lme(z~1,data=nestedsample,random=~1|level1/level2/level3/level4) 109 | out <- as.matrix(VarCorr(lmodel)) 110 | sigmas <- as.numeric(out[c(2,4,6,8,9),1]) 111 | ord <- sort(seq(1:length(lags)),decreasing=T) 112 | sigmas <- sigmas[ord] 113 | semivar <- cumsum(sigmas) 114 | -------------------------------------------------------------------------------- /cLHS_spsann.R: -------------------------------------------------------------------------------- 1 | library(sp) 2 | library(reshape) 3 | library(ggplot2) 4 | library(spsann) 5 | 6 | #Read data 7 | 8 | load(file="Data/HunterValley4Practicals.RData") 9 | grid <- grdHunterValley 10 | rm(grdHunterValley) 11 | 12 | #Grid has too many points (memory problems hereafter), so a subgrid is selected. 13 | coordinates(grid) <- c("Easting","Northing") 14 | gridded(grid) <- T 15 | subgrid <- spsample(grid,type="regular",cellsize=50,offset=c(0.5,0.5)) 16 | subgriddata <- (subgrid %over% grid) 17 | grd <- data.frame(coordinates(subgrid),subgriddata) 18 | 19 | #Specify the candidate sampling points and the covariates to be used in conditioned Latin Hypercube Sampling 20 | 21 | candi <- grd[,1:2] 22 | names(candi) <- c("x","y") 23 | covars <- grd[, 3:7] 24 | 25 | #Define the schedule for simulated annealing. 26 | 27 | #Note that both the initial acceptance rate and the initial temperature are set, 28 | #which may seem weird as the acceptance rate is a function of the initial temperature: $P =e^{\frac{-\Delta f}{T}}$. 29 | #The initial acceptance rate is used as a threshold value. If an initial temperature is chosen that leads to an acceptance rate smaller than the chosen value for the initial acceptance rate, then the optimization stops. In this case a larger value for the initial temperature must be chosen. 30 | 31 | schedule <- scheduleSPSANN(initial.acceptance = 0.8,initial.temperature = 0.08, 32 | temperature.decrease=0.95, 33 | chains=1000, 34 | chain.length=4, 35 | stopping=10, 36 | x.min=10,y.min=10, 37 | cellsize=50) 38 | 39 | #Now start the simulated annealing algorithm. 40 | 41 | weights <- list(O1 = 0.5, O3 = 0.5) 42 | samplesize<-20 43 | set.seed(314) 44 | res <- optimCLHS( 45 | points = samplesize, candi = candi, covars = covars, use.coords = FALSE, 46 | schedule = schedule, track=TRUE, weights = weights, progress=NULL) 47 | 48 | #Compute number of points in marginal strata 49 | 50 | probs<-seq(from=0,to=1,length.out = samplesize + 1) 51 | breaks <- apply(covars,MARGIN=2,FUN=function(x) quantile(x,probs=probs,type=3)) 52 | 53 | mySample <- data.frame(grd[res$points$id,1:7]) 54 | 55 | counts <- lapply(1:ncol(covars), function (i) 56 | hist(mySample[, i+2], breaks[,i], plot = FALSE)$counts 57 | ) 58 | 59 | countslf <- data.frame(counts=unlist(counts)) 60 | countslf$covariate <- rep(names(covars),each=samplesize) 61 | countslf$stratum<-rep(seq(1:samplesize),times=ncol(covars)) 62 | 63 | #Plot the sample sizes in the marginal strata 64 | 65 | ggplot(countslf) + 66 | geom_point(mapping = aes(x=stratum,y = counts), colour = "black",size=1) + 67 | facet_wrap(~covariate) + 68 | scale_x_continuous(name = "Stratum") + 69 | scale_y_continuous(name = "Sample size",breaks=c(0,1,2,3)) 70 | 71 | #Compute O1 criterion (as a sum, not as a mean) 72 | 73 | (sum(abs(countslf$counts-1))) 74 | 75 | #Plot the optimized sample in geographical space. 76 | pdf(file = "cLHS_HunterValley.pdf", width = 7, height = 7) 77 | ggplot(data=grd) + 78 | geom_tile(mapping = aes(x = x1, y = x2, fill = cti))+ 79 | geom_point(data = mySample, mapping = aes(x = x1, y = x2), colour = "black",size=2) + 80 | scale_x_continuous(name = "Easting (km)") + 81 | scale_y_continuous(name = "Northing (km)") + 82 | scale_fill_gradient(name="cti",low = "darkblue", high = "red")+ 83 | coord_fixed() 84 | dev.off() 85 | 86 | #Plot the optimized sample in covariate space by making scatter plots 87 | 88 | pdf(file = "Scatterplot_cLHS_HunterValley.pdf", width = 7, height = 7) 89 | ggplot(data=grd) + 90 | geom_point(mapping = aes(y = elevation_m, x = cti), colour = "black",size=1,alpha=0.5) + 91 | geom_point(data=mySample, mapping = aes(y = elevation_m, x = cti), colour = "red",size=2) + 92 | geom_vline(xintercept=lb[-1,4],colour="grey")+ 93 | geom_hline(yintercept=lb[-1,1],colour="grey")+ 94 | scale_y_continuous(name = "Elevation") + 95 | scale_x_continuous(name = "CTI") 96 | dev.off() -------------------------------------------------------------------------------- /ModelbasedSample_SSA_KED.R: -------------------------------------------------------------------------------- 1 | library(spcosa) 2 | library(gstat) 3 | library(sp) 4 | 5 | # Source annealing functions 6 | source("Functions4SSA.R") 7 | 8 | # Load data.frame with coordinates and other attributes of fine grid (discretization of study area) 9 | load(file="Data/CovariatesThreeWoredasEthiopia.RData") 10 | covariates <- c("dem","rfl_NIR","rfl_red","lst") 11 | grid <-grdEthiopia[,c("s1","s2",covariates)] 12 | coordinates(grid) <- ~s1+s2 13 | gridded(grid) <- T 14 | 15 | # Load existing sampling points 16 | load(file="Data/DataThreeWoredasEthiopia.RData") 17 | 18 | # Subsample legacy sample (cellsize of grid = 1 km x 1 km) 19 | legacy <- remove.duplicates(priordataEthiopia,zero=1,remove.second=T) 20 | legacy <- as(legacy,"data.frame") 21 | legacy <- legacy[,c("s1","s2",covariates)] 22 | coordinates(legacy) <- ~s1+s2 23 | 24 | # Create prediction grid 'p' 25 | p <- spsample(x = grid, n = 1000, type = "regular", offset = c(0.5, 0.5)) 26 | overgrd <- (p %over%grid) 27 | p <- data.frame(coordinates(p),overgrd) 28 | names(p)[c(1,2)] <- c("s1","s2") 29 | coordinates(p) <- ~s1+s2 30 | 31 | # Set number of new sampling locations to be selected 32 | n<-100 33 | 34 | # Select spatial coverage sample as initial infill sample 35 | # Compute total sample size (existing points + new points) 36 | ntot<-n+length(legacy) 37 | 38 | myStrata <- stratify(grid,nStrata = ntot, priorPoints=as(legacy,"SpatialPoints"),equalArea=FALSE, nTry=1) 39 | mySample <- spsample(myStrata) 40 | plot(myStrata, mySample) 41 | 42 | # Select the new points from mySample 43 | ids <- which(mySample@isPriorPoint==F) 44 | 45 | # Change class of mySample 46 | infill <- as(mySample, "SpatialPoints") 47 | infill <- infill[ids,] 48 | 49 | # Overlay with grid 50 | overgrd <- (infill%over%grid) 51 | infill <- data.frame(coordinates(infill),overgrd) 52 | coordinates(infill) <- ~s1+s2 53 | 54 | # Estimate the variogram from legacy sample 55 | vg <- variogram(SOC~dem+rfl_NIR+rfl_red+lst, data = priordataEthiopia, cutoff=20) 56 | vgfitOLS <- fit.variogram(vg, model = vgm(model = "Sph", psill = 0.2, range = 6, nugget = 0.5)) 57 | plot(vg,vgfitOLS) 58 | 59 | # Fit model by REML 60 | library(geoR) 61 | dGeoR <- as.geodata( 62 | obj = as.data.frame(priordataEthiopia), 63 | header=TRUE, 64 | coords.col=13:14, 65 | data.col=1, 66 | data.names=NULL, 67 | covar.col=c(3,6,9,10,11,13,14) 68 | ) 69 | 70 | lmSOC_REML<- likfit(geodata = dGeoR, trend=~dem+rfl_NIR+rfl_red+lst,cov.model="spherical", ini.cov.pars=c(vgfitOLS[2,2], vgfitOLS[2,3]),nugget=vgfitOLS[1,2], lik.method="REML") 71 | summary(lmSOC_REML) 72 | 73 | # Set variogram parameters to those estimated by REML 74 | vgfitREML <- vgfitOLS 75 | vgfitREML[1,2] <- lmSOC_REML$nugget 76 | vgfitREML[2,2] <- lmSOC_REML$sigmasq 77 | vgfitREML[2,3] <- lmSOC_REML$phi 78 | 79 | # Start the optimization 80 | annealingResult <- anneal.K( 81 | d = infill, 82 | g = grid, 83 | p = p, 84 | legacy=legacy, 85 | model=vgfitREML, 86 | nmax=40, 87 | initialTemperature = 0.0005, 88 | coolingRate = 0.9, 89 | maxAccepted = 2*nrow(coordinates(infill)), 90 | maxPermuted = 2*nrow(coordinates(infill)), 91 | maxNoChange = 2*nrow(coordinates(infill)), 92 | verbose = "TRUE" 93 | ) 94 | 95 | save(annealingResult,file="ModelBasedSample_KED_Ethiopia.RData") 96 | 97 | library(ggplot2) 98 | infillSampledf <-data.frame(annealingResult$optSample) 99 | legacy <- as(legacy,"data.frame") 100 | 101 | pdf(file = "ModelBasedInfillSample_KED_Ethiopia.pdf", width = 5, height = 5) 102 | ggplot() + 103 | geom_tile(grdEthiopia,mapping=aes(x=s1,y=s2,fill=rfl_NIR))+ 104 | geom_point(data = infillSampledf, mapping = aes(x = s1, y = s2)) + 105 | geom_point(data = legacy, mapping = aes(x = s1, y = s2), shape=2) + 106 | scale_fill_continuous(low="darkblue",high="red",name="NIR")+ 107 | coord_fixed() 108 | dev.off() 109 | 110 | traceMOKV <- annealingResult$Criterion 111 | pdf(file = "TraceMKEDV_Ethiopia.pdf", width = 7, height = 7) 112 | ggplot() + 113 | geom_line(mapping=aes(x=1:length(traceMOKV),y=traceMOKV),colour="red")+ 114 | scale_x_continuous(name="Chain")+ 115 | scale_y_continuous(name="Mean ordinary kriging variance") 116 | dev.off() 117 | -------------------------------------------------------------------------------- /SI_PointPairs.R: -------------------------------------------------------------------------------- 1 | # load relevant packages 2 | library(sp) 3 | library(ggplot2) 4 | 5 | #Define fucntion for simple random sampling of pairs of points with separation distance h 6 | 7 | SIpairs<-function(h,n,area){ 8 | topo <-as(getGridTopology(area),"data.frame") 9 | cellsize <- topo$cellsize[1] 10 | xy <- coordinates(area) 11 | dxy<-numeric(length=2) 12 | xypnts1 <- xypnts2 <-NULL 13 | i<-1 14 | while (i <= n) { 15 | id1<-sample.int(n=length(area),size=1) 16 | xypnt1<-xy[id1,] 17 | xypnt1[1]<-jitter(xypnt1[1],amount=cellsize/2) 18 | xypnt1[2]<-jitter(xypnt1[2],amount=cellsize/2) 19 | angle<-runif(n=1,min=0,max=2*pi) 20 | dxy[1]=h*sin(angle) 21 | dxy[2]=h*cos(angle) 22 | xypnt2<-xypnt1+dxy 23 | xypnt2<-as.data.frame(t(xypnt2)) 24 | coordinates(xypnt2)<-~s1+s2 25 | inArea<-as.numeric(over(x=xypnt2,y=area))[1] 26 | if (!is.na(inArea)){ 27 | xypnts1<-rbind(xypnts1,xypnt1) 28 | xypnts2<-rbind(xypnts2,as.data.frame(xypnt2)) 29 | i<-i+1 30 | } 31 | rm(xypnt1,xypnt2) 32 | } 33 | return(cbind(xypnts1,xypnts2)) 34 | } 35 | 36 | #Read simulated field 37 | load(file="HunterValley4Practicals.RData") 38 | grd <- grdHunterValley 39 | names(grd)[c(1,2)] <- c("s1","s2") 40 | coordinates(grd) <- ~ s1+s2 41 | gridded(grd) <- T 42 | 43 | #Insert separation distances 44 | h<-c(25, 50, 100, 200, 400) 45 | 46 | #Select all point pairs 47 | set.seed(314) 48 | samplesize<-100 49 | 50 | allpairs<-NULL 51 | for (i in 1:length(h)){ 52 | pairs<-SIpairs(h=h[i],n=samplesize,area=grd) 53 | allpairs <- rbind(allpairs,pairs,make.row.names=FALSE) 54 | } 55 | 56 | #Overlay with grid 57 | p1 <- allpairs[,c(1,2)] 58 | p2 <- allpairs[,c(3,4)] 59 | coordinates(p1) <- ~s1+s2 60 | z1<-over(x=p1,y=grd)[4] 61 | coordinates(p2) <- ~s1+s2 62 | z2<-over(x=p2,y=grd)[4] 63 | 64 | mysample <- data.frame(h=rep(h,each=samplesize),z1,z2) 65 | names(mysample)[c(2,3)] <- c("z1","z2") 66 | gammah<-vargammah<-numeric(length=length(h)) 67 | 68 | for (i in 1:length(h)){ 69 | ids<-which(mysample$h==h[i]) 70 | pairs.h<-mysample[ids,] 71 | gammah[i]<-mean((pairs.h$z1-pairs.h$z2)^2,na.rm=TRUE)/2 72 | vargammah[i]<-var((pairs.h$z1-pairs.h$z2)^2,na.rm=TRUE)/(samplesize*4) 73 | } 74 | 75 | #Plot sample variogram 76 | 77 | samplevariogram<-data.frame(h,gammah,vargammah) 78 | ggplot(data=samplevariogram) + 79 | geom_point(mapping = aes(x = h,y=gammah),size = 3) + 80 | scale_x_continuous(name = "Separation distance") + 81 | scale_y_continuous(name="Semivariance",limits=c(0,NA)) 82 | 83 | #Fit model 84 | 85 | sphericalnugget <- function(h, range, psill, nugget) { 86 | h <- h/range 87 | nugget + psill*ifelse(h < 1, (1.5 * h - 0.5 * h^3),1) 88 | } 89 | 90 | 91 | fit.var <- nls(gammah~sphericalnugget(h,range,psill,nugget), 92 | data = samplevariogram, 93 | start=list(psill=4, range=200,nugget=1), 94 | weights=1/vargammah, 95 | algorithm="port", 96 | lower=c(0,0,0), 97 | trace=T) 98 | 99 | coef(fit.var) 100 | 101 | #compute variance covariance matrix of estimated variogram parameters by boostrapping 102 | 103 | allpars<-NULL 104 | nboot<-100 105 | for (j in 1:nboot) { 106 | #select bootstrap sample for each lag and compute semivariance 107 | gammah<-vargammah<-numeric(length=length(h)) 108 | for (i in 1:length(h)){ 109 | ids<-which(mysample$h==h[i]) 110 | pairs<-mysample[ids,] 111 | mysampleids<-sample.int(samplesize,size=samplesize,replace=TRUE) 112 | mybtpsample<-pairs[mysampleids,] 113 | gammah[i]<-mean((mybtpsample$z1-mybtpsample$z2)^2,na.rm=TRUE)/2 114 | vargammah[i]<-var((mybtpsample$z1-mybtpsample$z2)^2,na.rm=TRUE)/(samplesize*4) 115 | } 116 | 117 | 118 | #fit model 119 | samplevariogram<-data.frame(h,gammah,vargammah) 120 | tryCatch({fittedvariogram <- nls(gammah~sphericalnugget(h,range,psill,nugget), 121 | data = samplevariogram, 122 | start=list(psill=4, range=200,nugget=1), 123 | weights=1/vargammah, 124 | algorithm="port", 125 | lower=c(0,0,0)) 126 | pars<-coef(fittedvariogram) 127 | allpars<-rbind(allpars,pars)},error=function(e){}) 128 | } 129 | 130 | #compute variance-covariance matrix of two variogram parameters 131 | var(allpars) 132 | -------------------------------------------------------------------------------- /cLHS.R: -------------------------------------------------------------------------------- 1 | # NOTE THAT, CONTRARY TO WHAT IS STATED IN THE GEODERMA PAPER, SUPPLEMENTING 2 | # AN EXISTING SAMPLE (LEGACY SAMPLE) WITH A CONDITIONED LATIN HYPERCUBE SAMPLE 3 | # CAN ALSO BE DONE WITH R PACKAGE SPSANN! SEE ARGUMENT points OF FUNCTION optimCLHS 4 | 5 | # CONTRARY TO SPSANN THE NUMBER OF MARGINAL STRATA IS EQUAL TO THE NUMBER OF ADDITIONAL POINTS 6 | # O1 IS DEFINED AS THE SUM OF THE ABSOLUTE DIFFERENCES OF THE SAMPLE PROPORTIONS AND POPULAION PROPORTIONS IN THE MARGINAL STRATA 7 | 8 | library(spcosa) 9 | library(sp) 10 | library(ggplot2) 11 | 12 | # Source annealing functions 13 | source('Functions4SSA.R') 14 | 15 | # Read grid with covariates 16 | load(file="Data/HunterValley4Practicals.RData") 17 | grd<-grdHunterValley 18 | rm(grdHunterValley) 19 | 20 | # In which columns are the coordinates and covariates? 21 | col.xy <- c(1,2) 22 | col.cov <- c(3,4,5,6,7) 23 | 24 | # Compute population correlation matrix of covariates 25 | 26 | R<-cor(grd[,col.cov]) 27 | 28 | # Typecast grd to SpatialPixelsDataFrame 29 | grid <- SpatialPixelsDataFrame( 30 | points = grd[,col.xy], 31 | data = grd[,col.cov] 32 | ) 33 | 34 | # Select legacy sample 35 | set.seed(314) 36 | ids <- sample.int(nrow(grd),10) 37 | legacy <- SpatialPoints( 38 | coords=grd[ids,col.xy] 39 | ) 40 | 41 | # Select spatial infill sample which is used as initial sample in annealing 42 | set.seed(314) 43 | samplesize<-50 #number of additional points 44 | ntot <- samplesize+length(legacy) 45 | 46 | myStrata <- stratify(grid,nStrata = ntot, priorPoints=legacy, equalArea=FALSE, nTry=1) 47 | mySample <- spsample(myStrata) 48 | plot(myStrata, mySample) 49 | 50 | # Select the new points from mySample 51 | ids <- which(mySample@isPriorPoint==F) 52 | mySample <- as(mySample, "SpatialPoints") 53 | mySample <- mySample[ids,] 54 | 55 | # Compute breaks of marginal strata 56 | probs<-seq(from=0,to=1,length.out=samplesize+1) 57 | breaks <- apply(grd[,3:7],MARGIN=2,FUN=function(x) quantile(x,probs=probs,type=3)) 58 | 59 | #compute proportion of population units (pixels) in marginal strata 60 | counts.population <- lapply(1:length(col.cov), function (i) 61 | hist(as.data.frame(grid[,i])[,1], breaks[,i], plot = FALSE)$counts) 62 | counts.populationlf <- data.frame(counts=unlist(counts.population)) 63 | popprop <- counts.populationlf/length(grid) 64 | 65 | #set relative weight of O1 for computing the LHS criterion (O1 is for coverage of marginal strata of covariates); 1-W01 is the relative weight for O3 (for correlation) 66 | wO1<-0.5 67 | 68 | #now start the annealing 69 | annealingResult <- anneal.cLHS( 70 | d = mySample, 71 | g = grid, 72 | legacy = legacy, 73 | breaks = breaks, 74 | pp = popprop, 75 | wO1=wO1, 76 | R=R, 77 | initialTemperature = 0.02, 78 | coolingRate = 0.9, 79 | maxAccepted = 5*length(mySample), 80 | maxPermuted = 5*length(mySample), 81 | maxNoChange=10, 82 | verbose = "TRUE" 83 | ) 84 | 85 | 86 | save(annealingResult,file="LHSample_50(0.5).Rdata") 87 | load(file="LHSample_50(0.5).Rdata") 88 | 89 | optSample<-as(annealingResult$optSample, "data.frame") 90 | Eall<-annealingResult$Criterion 91 | 92 | #Plot the selected points on top of one of the covariates 93 | legacy <- as(legacy,"data.frame") 94 | #pdf(file = "LHSample_50(05)_cti.pdf", width = 7, height = 7) 95 | ggplot(data=grd) + 96 | geom_raster(mapping = aes(x = Easting/1000, y = Northing/1000, fill = cti))+ 97 | geom_point(data = optSample, mapping = aes(x = Easting/1000, y = Northing/1000), colour = "black") + 98 | geom_point(data = legacy, mapping = aes(x = Easting/1000, y = Northing/1000), colour = "red") + 99 | scale_x_continuous(name = "Easting (km)") + 100 | scale_y_continuous(name = "Northing (km)") + 101 | scale_fill_gradient(name="cti",low = "darkblue", high = "red")+ 102 | coord_fixed() 103 | #dev.off() 104 | 105 | #Make scatter plots 106 | coordinates(optSample)<-~Easting+Northing 107 | optSample <- over(optSample,grid) 108 | 109 | coordinates(legacy)<-~Easting+Northing 110 | legacy <- over(legacy,grid) 111 | 112 | ggplot(data=grd) + 113 | geom_point(mapping = aes(x = ndvi, y = cti), colour = "black",size=1,alpha=0.5) + 114 | geom_point(data=as.data.frame(optSample), mapping = aes(x = ndvi, y = cti), colour = "red",size=2) + 115 | geom_point(data=as.data.frame(legacy), mapping = aes(x = ndvi, y = cti), colour = "green",size=2) + 116 | scale_x_continuous(name = "ndvi") + 117 | scale_y_continuous(name = "cti") -------------------------------------------------------------------------------- /ModelBasedGridSpacingKED_MeanKV.R: -------------------------------------------------------------------------------- 1 | library(gstat) 2 | library(sp) 3 | library(geoR) 4 | library(ggplot2) 5 | 6 | #Load data on soil organic carbon 7 | 8 | load(file="Data/DataThreeWoredasEthiopia.RData") 9 | 10 | #Load file with discretisation grid 11 | 12 | load("Data/CovariatesThreeWoredasEthiopia.RData") 13 | 14 | #Estimate variogram parameters by REML 15 | #We assume that the mean of SOC is a linear combination of several covariates such as elevation (dem), enhanced vegetation index (evi), et cetera. To optimize the grid spacing we need the variogram of the residuals. Below this variogram is estimated by REML. Initial values are obtained by the parameters of the OLS residual variogram. 16 | 17 | #Fit linear model, compute residuals, and compute experimental variogram of residuals 18 | 19 | vg <- variogram(SOC~dem+rfl_NIR+rfl_red+lst, data = priordataEthiopia, cutoff=20) 20 | 21 | vgfitOLS <- fit.variogram(vg, model = vgm(model = "Sph", psill = 0.2, range = 6, nugget = 0.5)) 22 | plot(vg,vgfitOLS) 23 | 24 | #Fit model by REML 25 | dGeoR <- as.geodata( 26 | obj = as.data.frame(priordataEthiopia), 27 | header=TRUE, 28 | coords.col=13:14, 29 | data.col=1, 30 | data.names=NULL, 31 | covar.col=c(3,6,9,10,11,13,14) 32 | ) 33 | 34 | lmSOC_REML<- likfit(geodata = dGeoR, trend=~dem+rfl_NIR+rfl_red+lst,cov.model="spherical", ini.cov.pars=c(vgfitOLS[2,2], vgfitOLS[2,3]),nugget=vgfitOLS[1,2], lik.method="REML") 35 | summary(lmSOC_REML) 36 | 37 | #Select a simple random sample of size 1000 for evaluating the square grids. Add a small number to the x-coordinates and y-coordinates by drawing from a uniform distribution with lower and upper limit equal to -cellsize/2 and +cellsize/2, respectively. 38 | 39 | set.seed(314) 40 | ids<-sample.int(nrow(grdEthiopia),size=1000) 41 | mysample<-grdEthiopia[ids,] 42 | 43 | #Shift the randomly selected grid points to random points within the cells (the cellsize is 1 km x 1 km) 44 | 45 | mysample$s1 <- jitter(mysample$s1,0.5) 46 | mysample$s2 <- jitter(mysample$s2,0.5) 47 | 48 | coordinates(mysample) <- ~s1+s2 49 | 50 | #Set variogram parameters to those estimated by REML 51 | 52 | vgfitREML <- vgfitOLS 53 | vgfitREML[1,2] <- lmSOC_REML$nugget 54 | vgfitREML[2,2] <- lmSOC_REML$sigmasq 55 | vgfitREML[2,3] <- lmSOC_REML$phi 56 | 57 | #Specify grid spacings 58 | 59 | spacing<-seq(from=5,to=12,by=1) 60 | 61 | #Set number of times grid sampling of a given spacing is repeated 62 | 63 | r<-10 64 | 65 | coordinates(grdEthiopia) <- ~s1+s2 66 | gridded(grdEthiopia)<-TRUE 67 | 68 | MKV<-matrix(nrow=length(spacing),ncol=r) 69 | for (i in 1:length(spacing)) { 70 | for (j in 1:r) { 71 | mygridxy<-spsample(x=grdEthiopia,cellsize=spacing[i],type="regular") 72 | #add a dummy variable for interpolation 73 | mygrid<-data.frame(s1=mygridxy$x1,s2=mygridxy$x2,dummy=1) 74 | coordinates(mygrid)<-~s1+s2 75 | mygrd<-data.frame(mygrid %over% grdEthiopia,mygrid) 76 | coordinates(mygrd)<-~s1+s2 77 | #Use gstat for KED predictions 78 | predictions <- krige( 79 | dummy ~ dem+rfl_NIR+rfl_red+lst, 80 | mygrd, 81 | newdata = mysample, 82 | # model = vgfitREML, 83 | model = vgfitOLS, 84 | nmax = 100 85 | ) 86 | MKV[i,j]<-mean(predictions$var1.var) 87 | } 88 | } 89 | 90 | #Plot the mean kriging variance against the grid spacing. 91 | 92 | MMKV<-apply(MKV,MARGIN=1,FUN=mean) 93 | result<-data.frame(spacing,MKV,MMKV) 94 | 95 | ggplot(data=result)+ 96 | geom_point(mapping=aes(x=spacing,y=MMKV),size=3)+ 97 | scale_x_continuous(name="Spacing (km)")+ 98 | scale_y_continuous(name="Mean Kriging Variance") 99 | 100 | ggplot(data=result)+ 101 | geom_point(mapping=aes(x=spacing,y=X1),size=1,alpha=0.5)+ 102 | geom_point(mapping=aes(x=spacing,y=X2),size=1,alpha=0.5)+ 103 | geom_point(mapping=aes(x=spacing,y=X3),size=1,alpha=0.5)+ 104 | geom_point(mapping=aes(x=spacing,y=X4),size=1,alpha=0.5)+ 105 | geom_point(mapping=aes(x=spacing,y=X5),size=1,alpha=0.5)+ 106 | geom_point(mapping=aes(x=spacing,y=X6),size=1,alpha=0.5)+ 107 | geom_point(mapping=aes(x=spacing,y=X7),size=1,alpha=0.5)+ 108 | geom_point(mapping=aes(x=spacing,y=X8),size=1,alpha=0.5)+ 109 | geom_point(mapping=aes(x=spacing,y=X9),size=1,alpha=0.5)+ 110 | geom_point(mapping=aes(x=spacing,y=X10),size=1,alpha=0.5)+ 111 | scale_x_continuous(name="Spacing (km)")+ 112 | scale_y_continuous(name="Mean Kriging Variance") 113 | 114 | write.csv(result,file="MKEDVvsGridspacing_Ethiopia.csv",row.names=F) 115 | 116 | -------------------------------------------------------------------------------- /ModelBasedSample_SSA_EK.R: -------------------------------------------------------------------------------- 1 | library(spcosa) 2 | library(sp) 3 | library(matrixcalc) 4 | 5 | # Annealing functions 6 | source("Functions4SSA.R") 7 | 8 | #Read data with coordinates and other attributes of fine grid (discretization of study area) 9 | 10 | load(file="HunterValley4Practicals.RData") 11 | grd <- grdHunterValley 12 | coordinates(grd)<- ~Easting+Northing 13 | gridded(grd)<-TRUE 14 | 15 | s <- 0.8 #ratio of spatial dependence c1/(c0+c1) 16 | range<-200 17 | thetas <- c(s,range) 18 | 19 | 20 | ## SAMPLING FOR VARIOGRM ESTIMATION USING EITHER LOGDET OR VV AS CRITERION 21 | 22 | 23 | # Select initial sample 24 | set.seed(314) 25 | n <- 100 26 | ids <- sample.int(nrow(grd),n) 27 | mysample0 <- as(grd[ids,],"SpatialPoints") 28 | 29 | # Define sampling grid used for prediction after the second sampling phase 30 | xgrid <- c(0,1,2,3) 31 | ygrid <- xgrid 32 | grid <- expand.grid(xgrid,ygrid) 33 | names(grid) <- c("x","y") 34 | spacing<-300 35 | grid$x <- grid$x*spacing 36 | grid$y <- grid$y*spacing 37 | coordinates(grid) <- ~x+y 38 | 39 | # Compute evaluation point 40 | myevalsample <- data.frame(x=mean(grid$x),y=mean(grid$y)) 41 | coordinates(myevalsample) <- ~x+y 42 | 43 | # Set amount of perturbation of correlogram parameters 44 | perturbation <- 0.01 45 | 46 | # For variogram estimation choose one of the following minimization criterions: 47 | 48 | # logdet: log of the determinant of inverse of Fisher information matrix 49 | # VV: Variance of kriging Variance, see Eq. 9 in Lark (2002) Geoderma. 50 | 51 | annealingResult <- anneal.EK( 52 | free = mysample0, 53 | disc = grd, 54 | fixed = grid, 55 | esample = myevalsample, 56 | model = "Exp", 57 | thetas=thetas, 58 | perturbation=perturbation, 59 | criterion="VV", 60 | # initialTemperature = 0.05, #logdet 61 | initialTemperature = 0.00005, #VV 62 | coolingRate = 0.8, 63 | maxAccepted = 5*nrow(coordinates(mysample0)), 64 | maxPermuted = 5*nrow(coordinates(mysample0)), 65 | maxNoChange = 5, 66 | verbose = "TRUE" 67 | ) 68 | 69 | save(annealingResult,file="MBSample_VV_phi200nug05_HunterValley.RData") 70 | 71 | #load(file="MBSample_logdet_phi200nug02_HunterValley.RData") 72 | load(file="MBSample_VV_phi200nug02_HunterValley.RData") 73 | 74 | 75 | library(ggplot2) 76 | mysampledf <- data.frame(annealingResult$optSample) 77 | 78 | # Plot sample 79 | 80 | #pdf(file = "MB_logdet_phi200nug05_HunterValley.pdf", width = 7, height = 7) 81 | ggplot(grdHunterValley) + 82 | geom_raster(mapping = aes(x= Easting, y =Northing),fill="grey")+ 83 | geom_point(data = mysampledf, mapping = aes(x= Easting, y =Northing), shape =2,size=1 )+ 84 | coord_fixed() 85 | #dev.off() 86 | 87 | crit <- annealingResult$Criterion 88 | ggplot() + 89 | geom_line(mapping=aes(x=1:length(crit),y=crit),colour="red")+ 90 | scale_x_continuous(name="Chain")+ 91 | scale_y_continuous(name="Minimization criterion") 92 | 93 | 94 | 95 | 96 | 97 | ## SAMPLING FOR VARIOGRAM ESTIMATION AND PREDICTION USING EITHER AV OR EAC AS CRITERION 98 | 99 | 100 | 101 | 102 | 103 | 104 | # Select spatial coverage sample for prediction. These locations are fixed, i.e. their locations are not opimized in simulated annealing 105 | # Note that a spatial coverage sample is not strictly needed! The alternative is to to optimize the coordinates of all locations in SSA 106 | 107 | # Choose number of locations of spatial coverage sample 108 | n <-90 109 | set.seed(314) 110 | myStrata <- stratify(grd, nStrata = n, equalArea=FALSE, nTry=10) 111 | mySCsample <- as(spsample(myStrata),"SpatialPoints") 112 | 113 | # Select initial supplemental sample 114 | nsup <- 10 115 | ids <- sample.int(nrow(grd),nsup) 116 | mysupsample <- as(grd[ids,],"SpatialPoints") 117 | 118 | # Select evaluation sample 119 | myevalsample<-spsample(x=grd,n=100,type="regular",offset=c(0.5,0.5)) 120 | 121 | # Set amount of perturbation of correlogram parameters 122 | perturbation <- 0.01 123 | 124 | # Choose one of the following minimization criterions: 125 | # AV: Augmented kriging Variance, see Eq. 5 in Lark and Marchant (2018), Geoderma 126 | # EAC: Estimation Adjusted Criterion, see Eq. 2.16 in Zhu and Stein (2006), JABES 127 | 128 | annealingResult <- anneal.EK( 129 | free = mysupsample, 130 | disc = grd, 131 | fixed = mySCsample, 132 | esample = myevalsample, 133 | model = "Exp", 134 | thetas = thetas, 135 | perturbation=perturbation, 136 | criterion="EAC", 137 | # initialTemperature = 0.002, #AV 138 | initialTemperature = 0.005, #EAC 139 | coolingRate = 0.8, 140 | maxAccepted = 5*nrow(coordinates(mysupsample)), 141 | maxPermuted = 5*nrow(coordinates(mysupsample)), 142 | maxNoChange = 5, 143 | verbose = "TRUE" 144 | ) 145 | 146 | save(annealingResult,file="MBSample_EAC_phi200nug02_HunterValley.RData") 147 | 148 | crit <- annealingResult$Criterion 149 | ggplot() + 150 | geom_line(mapping=aes(x=1:length(crit),y=crit),colour="red")+ 151 | scale_x_continuous(name="Chain")+ 152 | scale_y_continuous(name="Minimization criterion") 153 | 154 | # compute distance of supplemental sample to nearest spatial coverage sample point 155 | D <- spDists(mySCsample,annealingResult$optSample) 156 | (Dmin <- apply(D,MARGIN=2,FUN=min)) 157 | hist(Dmin) 158 | 159 | D <- spDists(annealingResult$optSample) 160 | diag(D) <- 1E1000 161 | (Dmin <- apply(D,MARGIN=2,FUN=min)) 162 | 163 | library(ggplot2) 164 | mysupsampledf <- data.frame(annealingResult$optSample) 165 | mySCsampledf <- as(mySCsample,"data.frame") 166 | 167 | 168 | # Plot strata, spatial coverage sample and supplemental sample 169 | 170 | plot(myStrata) + 171 | geom_point(data = mySCsampledf, mapping = aes(x= Easting, y =Northing), shape =1,size=1 )+ 172 | geom_point(data = mysupsampledf, mapping = aes(x= Easting, y =Northing), shape =2,size=1 ) 173 | dev.off() 174 | -------------------------------------------------------------------------------- /BayesianGridSpacing.R: -------------------------------------------------------------------------------- 1 | library(BayesianTools) 2 | library(sp) 3 | library(gstat) #for MoM estimation of variogram 4 | library(ggplot2) 5 | 6 | exponential <- function(D, pars) { 7 | C <- pars[1] * pars[2] * (exp(-D/pars[3])) 8 | diag(C) <- pars[1] 9 | C 10 | } 11 | 12 | spherical <- function(D, pars) { 13 | C <- ifelse(D 1){ 50 | stop("Error: prob must be in open interval (0,1)") 51 | } 52 | 53 | # set initial temperature 54 | T <- initialTemperature 55 | 56 | # merge infill sample and legacy sample 57 | dall <- d 58 | if(!is.null(legacy)){ 59 | dall <- rbind(d,legacy) 60 | } 61 | 62 | # compute the criterion (mean kriging variance) 63 | E <- getCriterion.K(dall, p, model, nmax, prob) 64 | 65 | # store criterion 66 | E_prv <- E 67 | 68 | # Define structure for storing time series of criterion 69 | Eall<-NULL 70 | 71 | # initialize number of zero changes of objective function 72 | nNoChange <-0 73 | 74 | # start cooling loop 75 | repeat{ 76 | 77 | # initialize number of accepted configurations 78 | nAccepted <- 0 79 | 80 | # initialize number of permuted configurations 81 | nPermuted <- 0 82 | 83 | # initialize number of improved configurations 84 | nImproved <- 0 85 | 86 | # start permutation loop 87 | repeat { 88 | 89 | # increase the number of permutations 90 | nPermuted <- nPermuted + 1 91 | 92 | # propose new sample by making use of function permute 93 | d_p <- permute(d, g) 94 | 95 | # for KED overlay new sample with grid 96 | if(length(names(p))>0) { 97 | d_p <- SpatialPointsDataFrame( 98 | coords = d_p, 99 | data = d_p %over% g 100 | )} 101 | 102 | #merge infill sample and legacy sample 103 | dall_p <- d_p 104 | if(!missing(legacy)){ 105 | dall_p <- rbind(d_p,legacy) 106 | } 107 | 108 | # compute the criterion of this new sample by using function getCriterion 109 | E_p <- getCriterion.K(dall_p, p, model, nmax, prob) 110 | 111 | # accept/reject proposal by means of Metropolis criterion 112 | dE <- E_p - E 113 | if (dE < 0) { 114 | nImproved <- nImproved + 1 115 | prob <- 1 # always accept improvements 116 | } else { 117 | prob <- exp(-dE / T) # use Boltzmann to judge if deteriorations should be accepted 118 | } 119 | u <- runif(n = 1) # draw uniform deviate 120 | if (u < prob) { # accept proposal 121 | nAccepted <- nAccepted + 1 122 | d <- d_p 123 | E <- E_p 124 | } 125 | # are conditions met to lower temperature? 126 | lowerTemperature <- (nPermuted == maxPermuted) | 127 | (nAccepted == maxAccepted) 128 | if (lowerTemperature) { 129 | if (nImproved==0) 130 | {nNoChange<-nNoChange+1} 131 | else 132 | {nNoChange<-0} 133 | Eall<-rbind(Eall,E) 134 | break 135 | } 136 | } 137 | 138 | if (verbose) { 139 | cat( 140 | format(Sys.time()), "|", 141 | sprintf("T = %e E = %e permuted = %d accepted = %d improved = %d acceptance rate = %f \n", 142 | T, E, nPermuted, nAccepted, nImproved, nAccepted / nPermuted) 143 | ) 144 | } 145 | 146 | # check on convergence 147 | if (nNoChange == maxNoChange) { 148 | break 149 | } 150 | E_prv <- E 151 | 152 | # lower temperature 153 | T <- coolingRate * T 154 | } 155 | 156 | # return result 157 | list( 158 | optSample=d,Criterion=Eall 159 | ) 160 | } 161 | 162 | 163 | getCriterion.K<-function(d,p,model,nmax,prob) { 164 | 165 | # add dummy variable 166 | if(class(d)=="SpatialPoints") { 167 | d <- SpatialPointsDataFrame( 168 | coords = d, 169 | data = data.frame(dum = rep(1, times = length(d))) 170 | ) 171 | } else { 172 | d$dum=1 173 | } 174 | 175 | if(length(names(p))>0) { 176 | formul <- as.formula(paste("dum", paste(names(p), collapse = "+"), sep = "~"))} else { 177 | formul <- as.formula(paste("dum", paste(1, collapse = "+"), sep = "~")) 178 | } 179 | 180 | # compute variance of prediction error 181 | result <- krige( 182 | formula=formul, 183 | locations = d, 184 | newdata = p, 185 | model = model, 186 | nmax=nmax, 187 | debug.level = 0 188 | ) 189 | quantile(result$var1.var,probs=prob) 190 | } 191 | 192 | 193 | # Annealing function for estimation of variogram and kriging 194 | anneal.EK<-function(free, disc, fixed, esample, model, thetas, perturbation=0.01, criterion, 195 | initialTemperature = 1, coolingRate = 0.9, maxAccepted = 10 * nrow(coordinates(free)), 196 | maxPermuted=10* nrow(coordinates(free)), maxNoChange=nrow(coordinates(free)), verbose = getOption("verbose")) { 197 | 198 | if(!(class(free) %in% c("SpatialPoints","SpatialPointsDataFrame"))) 199 | stop("Error: free must be SpatialPoints(DataFrame)") 200 | if(!(class(disc) %in% c("SpatialPixels","SpatialPixelsDataFrame"))) 201 | stop("Error: disc must be SpatialPixels(DataFrame)") 202 | if(!(class(esample) %in% c("SpatialPoints","SpatialPointsDataFrame"))) 203 | stop("Error: esample must be SpatialPoints(DataFrame)") 204 | if(!(criterion %in% c("logdet","VV","AV","EAC"))) 205 | stop("Error: criterion must be one of logdet, VV, AV or EAC") 206 | 207 | # set initial temperature 208 | T <- initialTemperature 209 | 210 | # merge free and fixed sample, if present and only for criterion AV and EAC 211 | sample <- free 212 | if(!missing(fixed) & criterion %in% c("AV","EAC")){ 213 | sample <- rbind(free,fixed) 214 | } 215 | 216 | # compute the criterion (mean kriging variance) 217 | if (criterion %in% c("logdet","VV")) { 218 | E <- getCriterion.E(sample=sample,grid=fixed,esample=esample,model,thetas,perturbation,criterion)} else { 219 | E <- getCriterion.EK(sample=sample,esample=esample,model,thetas,perturbation,criterion) 220 | } 221 | 222 | # store criterion 223 | E_prv <- E 224 | 225 | # Define structure for storing time series of criterion 226 | Eall<-NULL 227 | 228 | # initialize number of zero changes of objective function 229 | nNoChange <-0 230 | 231 | # start cooling loop 232 | repeat{ 233 | 234 | # initialize number of accepted configurations 235 | nAccepted <- 0 236 | 237 | # initialize number of permuted configurations 238 | nPermuted <- 0 239 | 240 | # initialize number of improved configurations 241 | nImproved <- 0 242 | 243 | # start permutation loop 244 | repeat { 245 | 246 | # increase the number of permutations 247 | nPermuted <- nPermuted + 1 248 | 249 | # propose new sample by making use of function permute 250 | free_p <- permute(free, disc) 251 | 252 | # for KED overlay new sample with grid 253 | if(length(names(esample))>0) { 254 | free_p <- SpatialPointsDataFrame( 255 | coords = free_p, 256 | data = free_p %over% disc 257 | )} 258 | 259 | #merge proposed free sample and fixed sample when present 260 | sample_p <- free_p 261 | if(!missing(fixed) & criterion %in% c("AV","EAC")){ 262 | sample_p <- rbind(free_p,fixed) 263 | } 264 | 265 | # compute the criterion of this new sample by using function getCriterion 266 | if (criterion %in% c("logdet","VV")) { 267 | E_p <- getCriterion.E(sample=sample_p,grid=fixed,esample=esample,model,thetas,perturbation,criterion)} else { 268 | E_p <- getCriterion.EK(sample=sample_p,esample=esample,model,thetas,perturbation,criterion) 269 | } 270 | 271 | # accept/reject proposal by means of Metropolis criterion 272 | dE <- E_p - E 273 | 274 | if (dE < 0) { 275 | nImproved <- nImproved + 1 276 | prob <- 1 # always accept improvements 277 | } else { 278 | prob <- exp(-dE / T) # use Boltzmann to judge if deteriorations should be accepted 279 | } 280 | u <- runif(n = 1) # draw uniform deviate 281 | if (u < prob) { # accept proposal 282 | nAccepted <- nAccepted + 1 283 | free <- free_p 284 | E <- E_p 285 | } 286 | 287 | # are conditions met to lower temperature? 288 | lowerTemperature <- (nPermuted == maxPermuted) | 289 | (nAccepted == maxAccepted) 290 | if (lowerTemperature) { 291 | if (nImproved==0) 292 | {nNoChange<-nNoChange+1} 293 | else 294 | {nNoChange<-0} 295 | Eall<-rbind(Eall,E) 296 | break 297 | } 298 | } 299 | 300 | if (verbose) { 301 | cat( 302 | format(Sys.time()), "|", 303 | sprintf("T = %e E = %e permuted = %d accepted = %d improved = %d acceptance rate = %f \n", 304 | T, E, nPermuted, nAccepted, nImproved, nAccepted / nPermuted) 305 | ) 306 | } 307 | 308 | # check on convergence 309 | if (nNoChange == maxNoChange) { 310 | break 311 | } 312 | 313 | E_prv <- E 314 | 315 | # lower temperature 316 | T <- coolingRate * T 317 | } 318 | 319 | # return result 320 | list( 321 | optSample=free,Criterion=Eall 322 | ) 323 | } 324 | 325 | getCriterion.E<-function(sample,grid,esample,model,thetas,perturbation,criterion) { 326 | nobs <- length(sample) 327 | #compute distance matrix of sample for variogram estimation 328 | D <- spDists(sample) 329 | A <- variogramLine(vgm(model=model,psill=thetas[1],range=thetas[2],nugget=1-thetas[1]), 330 | dist_vector=D,covariance=TRUE) 331 | thetas.pert <- thetas 332 | pA <- dA <- list() 333 | for (i in 1:length(thetas)) { 334 | thetas.pert[i] <- (1+perturbation)*thetas[i] 335 | pA[[i]] <- variogramLine(vgm(model=model,psill=thetas.pert[1],range=thetas.pert[2],nugget=1-thetas.pert[1]), 336 | dist_vector=D,covariance=TRUE) 337 | dA[[i]] <- (pA[[i]]-A)/(thetas[i]*perturbation) 338 | thetas.pert <- thetas 339 | } 340 | 341 | cholA <- try(chol(A),silent=TRUE) 342 | if (is.character(cholA)){ 343 | return(1E20)} else { 344 | # inverse of the correlation matrix 345 | invA <- chol2inv(chol(A)) 346 | # compute Fisher information matrix, see Eq. 7 Geoderma paper Lark, 2002 347 | I <- matrix(0,length(thetas),length(thetas)) 348 | for (i in 1:length(thetas)){ 349 | for (j in i:length(thetas)){ 350 | I[i,j]=I[j,i]=0.5*matrix.trace(invA%*%dA[[i]]%*%invA%*%dA[[j]]) 351 | } 352 | } 353 | 354 | cholI <- try(chol(I),silent=TRUE) 355 | if (is.character(cholI)){ 356 | return(1E20)} else { 357 | 358 | # inverse of the Fisher information matrix 359 | invI <- chol2inv(chol(I)) 360 | 361 | if(criterion=="logdet"){ 362 | logdet <- determinant(invI,logarithm=TRUE)$modulus 363 | return(logdet)} else { 364 | 365 | #compute distance matrix and correlation matrix of grid nodes 366 | D <- spDists(grid) 367 | A <- variogramLine(vgm(model=model,psill=thetas[1],range=thetas[2],nugget=1-thetas[1]), 368 | dist_vector=D,covariance=TRUE) 369 | #extend correlation matrix A with a column and row with ones (ordinary kriging) 370 | nobs<-length(grid) 371 | B <- matrix(data=0,nrow=nobs+1,ncol=nobs+1) 372 | B[1:nobs,1:nobs] <- A 373 | B[1:nobs,nobs+1] <- 1 374 | B[nobs+1,1:nobs] <- 1 375 | #compute matrix with correlations between evaluation node and sampling points 376 | D0 <- spDists(x=esample,y=grid) 377 | A0 <- variogramLine(vgm(model=model,psill=thetas[1],range=thetas[2],nugget=1-thetas[1]), 378 | dist_vector=D0,covariance=TRUE) 379 | b <- cbind(A0,1) 380 | #compute perturbed correlation matrix (pA) 381 | thetas.pert <- thetas 382 | pA <- pA0 <- list() 383 | for (i in 1:length(thetas)) { 384 | thetas.pert[i] <- (1+perturbation)*thetas[i] 385 | pA[[i]] <- variogramLine(vgm(model=model,psill=thetas.pert[1],range=thetas.pert[2],nugget=1-thetas.pert[1]), 386 | dist_vector=D,covariance=TRUE) 387 | pA0[[i]] <- variogramLine(vgm(model=model,psill=thetas.pert[1],range=thetas.pert[2],nugget=1-thetas.pert[1]), 388 | dist_vector=D0,covariance=TRUE) 389 | thetas.pert <- thetas 390 | } 391 | #extend pA and pA0 with ones 392 | pB <- pb <-list() 393 | for (i in 1:length(thetas)) { 394 | pB[[i]] <- matrix(data=0,nrow=nobs+1,ncol=nobs+1) 395 | pB[[i]][1:nobs,1:nobs] <-pA[[i]] 396 | pB[[i]][1:nobs,nobs+1] <- 1 397 | pB[[i]][nobs+1,1:nobs] <- 1 398 | pb[[i]] <- cbind(pA0[[i]],1) 399 | } 400 | 401 | #compute perturbed kriging variances (pvar) 402 | var <- numeric(length=length(esample)) #kriging variance 403 | pvar <- matrix(nrow=length(esample),ncol=length(thetas)) #matrix with perturbed kriging variances 404 | for (i in 1:length(esample)) { 405 | b <- c(A0[i,],1) 406 | l <- solve(B,b) 407 | var[i] <- 1 - l[1:nobs] %*% A0[i,] - l[nobs+1] 408 | for (j in 1:length(thetas)){ 409 | pl <- solve(pB[[j]],pb[[j]][i,]) 410 | pvar[i,j] <- 1 - pl[1:nobs] %*% pA0[[j]][i,] - pl[nobs+1] 411 | } 412 | } 413 | 414 | #approximate partial derivatives of kriging variance to correlogram parameters 415 | dvar <- list() 416 | for (i in 1:length(thetas)) { 417 | dvar[[i]] <- (pvar[,i]-var)/(thetas[i]*perturbation) 418 | } 419 | #compute variance of kriging variance for evaluation points. 420 | VV <- numeric(length=length(var)) 421 | for (i in 1:length(thetas)){ 422 | for (j in 1:length(thetas)){ 423 | VVij <- invI[i,j]*dvar[[i]]*dvar[[j]] 424 | VV <- VV+VVij 425 | } 426 | } 427 | MVV <- mean(VV) 428 | return(MVV) 429 | } 430 | } 431 | } 432 | } 433 | 434 | 435 | getCriterion.EK<-function(sample,esample,model,thetas,perturbation,criterion) { 436 | nobs <- length(sample) 437 | D <- spDists(sample) 438 | A <- variogramLine(vgm(model=model,psill=thetas[1],range=thetas[2],nugget=1-thetas[1]), 439 | dist_vector=D,covariance=TRUE) 440 | thetas.pert <- thetas 441 | pA <- dA <- list() 442 | for (i in 1:length(thetas)) { 443 | thetas.pert[i] <- (1+perturbation)*thetas[i] 444 | pA[[i]] <- variogramLine(vgm(model=model,psill=thetas.pert[1],range=thetas.pert[2],nugget=1-thetas.pert[1]), 445 | dist_vector=D,covariance=TRUE) 446 | dA[[i]] <- (pA[[i]]-A)/(thetas[i]*perturbation) 447 | thetas.pert <- thetas 448 | } 449 | 450 | cholA <- try(chol(A),silent=TRUE) 451 | if (is.character(cholA)){ 452 | return(1E20)} else { 453 | # inverse of the covariance matrix 454 | invA <- chol2inv(chol(A)) 455 | # compute Fisher information matrix, see Eq. 7 Geoderma paper Lark, 2002 456 | I <- matrix(0,length(thetas),length(thetas)) 457 | for (i in 1:length(thetas)){ 458 | for (j in i:length(thetas)){ 459 | I[i,j]=I[j,i]=0.5*matrix.trace(invA%*%dA[[i]]%*%invA%*%dA[[j]]) 460 | } 461 | } 462 | 463 | cholI <- try(chol(I),silent=TRUE) 464 | if (is.character(cholI)){ 465 | return(1E20)} else { 466 | 467 | # inverse of the Fisher information matrix 468 | invI <- chol2inv(chol(I)) 469 | 470 | # add dummy variable 471 | if(class(sample)=="SpatialPoints") { 472 | sample <- SpatialPointsDataFrame( 473 | coords = sample, 474 | data = data.frame(dum = rep(1, times = length(sample))) 475 | ) 476 | } else { 477 | sample$dum=1 478 | } 479 | 480 | if(length(names(esample))>0) { 481 | formul <- as.formula(paste("dum", paste(names(esample), collapse = "+"), sep = "~"))} else { 482 | formul <- as.formula(paste("dum", paste(1, collapse = "+"), sep = "~")) 483 | } 484 | 485 | m = model.frame(terms(formul), as(sample, "data.frame"), na.action = na.fail) 486 | term = attr(m, "terms") 487 | X = model.matrix(term, m) 488 | 489 | terms.f = delete.response(terms(formul)) 490 | mf.f = model.frame(terms.f, as(esample,"data.frame")) 491 | x0 = model.matrix(terms.f, mf.f) 492 | 493 | nrowB <- nobs + ncol(X) 494 | B <- matrix(data=0,nrow=nrowB,ncol=nrowB) 495 | B[1:nobs,1:nobs] <- A 496 | B[1:nobs,(nobs+1):nrowB] <- X 497 | B[(nobs+1):nrowB,1:nobs] <- t(X) 498 | 499 | #compute matrix with covariances between prediction nodes and sampling points 500 | D0 <- spDists(x=esample,y=sample) 501 | A0 <- variogramLine(vgm(model=model,psill=thetas[1],range=thetas[2],nugget=1-thetas[1]), 502 | dist_vector=D0,covariance=TRUE) 503 | #compute pB and pb by extending pA and pA0 with X 504 | thetas.pert <- thetas 505 | pB <- pA0 <- pb <-list() 506 | for (i in 1:length(thetas)) { 507 | pB[[i]] <- B 508 | pB[[i]][1:nobs,1:nobs] <- pA[[i]] 509 | 510 | thetas.pert[i] <- (1+perturbation)*thetas[i] 511 | pA0[[i]] <- variogramLine(vgm(model=model,psill=thetas.pert[1],range=thetas.pert[2],nugget=1-thetas.pert[1]), 512 | dist_vector=D0,covariance=TRUE) 513 | pb[[i]] <- cbind(pA0[[i]],x0) 514 | thetas.pert <- thetas 515 | } 516 | 517 | L <- matrix(nrow=length(esample),ncol=nobs) #matrix with kriging weights 518 | pL <- array(dim=c(length(esample),length(sample),length(thetas))) #array with perturbed kriging weights 519 | var <- numeric(length=length(esample)) #kriging variance 520 | pvar <- matrix(nrow=length(esample),ncol=length(thetas)) #matrix with perturbed kriging variances 521 | for (i in 1:length(esample)) { 522 | b <- c(A0[i,],x0[i,]) 523 | l <- solve(B,b) 524 | L[i,] <- l[1:nobs] 525 | var[i] <- 1 - l[1:nobs] %*% A0[i,] - x0[i,] %*% l[-(1:nobs)] 526 | for (j in 1:length(thetas)){ 527 | l <- solve(pB[[j]],pb[[j]][i,]) 528 | pL[i,,j] <- l[1:nobs] 529 | pvar[i,j] <- 1 - l[1:nobs] %*% pA0[[j]][i,] - x0[i,] %*% l[-(1:nobs)] 530 | } 531 | } 532 | 533 | dvar <- dL <- list() 534 | for (i in 1:length(thetas)) { 535 | dvar[[i]] <- (pvar[,i]-var)/(thetas[i]*perturbation) 536 | dL[[i]] <- (pL[,,i] - L)/(thetas[i]*perturbation) 537 | } 538 | 539 | #tausq: expectation of additional variance due to uncertainty in ML estimates of variogram parameters, see Eq. 5 Lark and Marchant 2018 540 | tausq <- numeric(length=length(esample)) 541 | tausqk <- 0 542 | for (k in 1:length(esample)) { 543 | for (i in 1:length(dL)){ 544 | for (j in 1:length(dL)){ 545 | tausqijk <- invI[i,j]*t(dL[[i]][k,])%*%A%*%dL[[j]][k,] 546 | tausqk <- tausqk+tausqijk 547 | } 548 | } 549 | tausq[k] <- tausqk 550 | tausqk<-0 551 | } 552 | augmentedvar <- var+tausq 553 | MVar <- mean(augmentedvar) 554 | if (criterion=="AV"){ 555 | return(MVar) 556 | } else { 557 | #VV: variance of kriging variance, see Eq. 9 Lark (2002) Geoderma. This variance is computed per evaluation point 558 | VV <- numeric(length=length(var)) 559 | for (i in 1:length(dvar)){ 560 | for (j in 1:length(dvar)){ 561 | VVij <- invI[i,j]*dvar[[i]]*dvar[[j]] 562 | VV <- VV+VVij 563 | } 564 | } 565 | EAC <- mean(augmentedvar+VV/(2*var)) #Estimation Adjusted Criterion of Zhu and Stein (2006), see Eq. 2.16 566 | return(EAC) 567 | } 568 | } 569 | } 570 | } 571 | 572 | 573 | # Annealing function for cLHS 574 | 575 | anneal.cLHS<-function(d, g, legacy, lb, wO1, R, 576 | initialTemperature = 1, coolingRate = 0.9, maxAccepted = 10 * nrow(coordinates(d)), 577 | maxPermuted=10* nrow(coordinates(d)),maxNoChange=nrow(coordinates(d)),verbose = getOption("verbose")) { 578 | 579 | # set initial temperature 580 | T <- initialTemperature 581 | 582 | # merge infill sample and legacy sample 583 | dall <- d 584 | if(!missing(legacy)) { 585 | 586 | # if(class(legacy) != "SpatialPointsDataFrame") { 587 | # stop("legacy should be SpatialPointsDataFrame") 588 | # } 589 | 590 | # if(proj4string(d) != proj4string(legacy)) { 591 | # stop("projections don't match") 592 | # } 593 | dall <- rbind(d,legacy) 594 | } 595 | 596 | # compute the criterion 597 | criterion <- getCriterion.cLHS(dall, g, lb, wO1,R) 598 | 599 | # store criterion 600 | criterion_prv <- criterion 601 | 602 | # Define structure for storing time series of criterion 603 | Eall<-NULL 604 | 605 | # initialize number of zero changes of objective function 606 | nNoChange <-0 607 | 608 | # start cooling loop 609 | repeat{ 610 | 611 | # initialize number of accepted configurations 612 | nAccepted <- 0 613 | 614 | # initialize number of permuted configurations 615 | nPermuted <- 0 616 | 617 | # initialize number of improved configurations 618 | nImproved <- 0 619 | 620 | # start permutation loop 621 | repeat { 622 | 623 | # increase the number of permutations 624 | nPermuted <- nPermuted + 1 625 | 626 | # propose new sample by making use of function permute 627 | d_p <- permute(d, g) 628 | 629 | #merge infill sample and legacy sample 630 | dall_p <- d_p 631 | if(!missing(legacy)){ 632 | dall_p <- rbind(d_p,legacy) 633 | } 634 | 635 | # compute the criterion of this new sample by using function getCriterion 636 | criterion_p <- getCriterion.cLHS(dall_p, g, lb, wO1, R) 637 | 638 | # accept/reject proposal by means of Metropolis criterion 639 | dE <- criterion_p["E"] - criterion["E"] 640 | if (dE < 0) { 641 | nImproved <- nImproved + 1 642 | p <- 1 # always accept improvements 643 | } else { 644 | p <- exp(-dE / T) # use Boltzmann to judge if deteriorations should be accepted 645 | } 646 | u <- runif(n = 1) # draw uniform deviate 647 | if (u < p) { # accept proposal 648 | nAccepted <- nAccepted + 1 649 | d <- d_p 650 | criterion <- criterion_p 651 | } 652 | 653 | # are conditions met to lower temperature? 654 | lowerTemperature <- (nPermuted == maxPermuted) | 655 | (nAccepted == maxAccepted) 656 | if (lowerTemperature) { 657 | if (nImproved==0) 658 | {nNoChange<-nNoChange+1} 659 | else 660 | {nNoChange<-0} 661 | Eall<-rbind(Eall,criterion) 662 | break 663 | } 664 | } 665 | 666 | if (verbose) { 667 | cat( 668 | format(Sys.time()), "|", 669 | sprintf("T = %e E = %e permuted = %d accepted = %d improved = %d acceptance rate = %f \n", 670 | T, criterion["E"], nPermuted, nAccepted, nImproved, nAccepted / nPermuted) 671 | ) 672 | } 673 | 674 | # check on convergence 675 | if (nNoChange == maxNoChange) { 676 | break 677 | } 678 | criterion_prv <- criterion 679 | 680 | # lower temperature 681 | T <- coolingRate * T 682 | } 683 | 684 | # return result 685 | list( 686 | optSample=d,Criterion=Eall 687 | ) 688 | } 689 | # Function for computing minimization criterion of cLHS 690 | 691 | getCriterion.cLHS<-function(d,g,lb,wO1,R) { 692 | #determine values of covariates at locations in d 693 | d <- SpatialPointsDataFrame( 694 | coords = d, 695 | data = over(d,g) 696 | ) 697 | 698 | #Determine in which stratum the sampling locations are 699 | stratum<-matrix(nrow=length(d),ncol=ncol(d)) 700 | for ( i in 1:ncol(d) ) { 701 | stratum[,i]<-findInterval(as.data.frame(d[,i])[,1],lb[,i]) 702 | } 703 | 704 | #count number of points in marginal strata 705 | counts<-matrix(nrow=nrow(lb),ncol=ncol(d)) 706 | for (i in 1:nrow(lb)) { 707 | counts[i,]<-apply(stratum, MARGIN=2, function(x,i) sum(x==i), i=i) 708 | } 709 | O1<-mean(abs(counts-1)) 710 | 711 | #compute sum of absolute differences of correlations 712 | r<-cor(as.data.frame(d)[1:ncol(d)]) 713 | dr <- abs(R-r) 714 | offdiagonal <- (!row(dr)==col(dr)) 715 | O3<-mean(dr[offdiagonal]) 716 | 717 | #compute LHS criterion 718 | E<-wO1*O1+(1-wO1)*O3 719 | 720 | # return result 721 | c(E = E, O1 = O1, O3=O3) 722 | } 723 | 724 | -------------------------------------------------------------------------------- /Data/EMUzbekistan_25m.csv: -------------------------------------------------------------------------------- 1 | "x1","x2","lnEM1m","lnEM05m" 2 | 307754.460180516,4602171.01350818,3.96368396470432,4.8455900215572 3 | 307779.460180516,4602171.01350818,3.96438377178805,4.84483761222068 4 | 307679.460180516,4602196.01350818,3.92193108073808,4.83982353351528 5 | 307704.460180516,4602196.01350818,3.94512790257775,4.8422253180966 6 | 307729.460180516,4602196.01350818,3.95908295585215,4.8444764619364 7 | 307754.460180516,4602196.01350818,3.96005368992525,4.84345054129768 8 | 307779.460180516,4602196.01350818,3.89440680984948,4.82474490675907 9 | 307804.460180516,4602196.01350818,3.89394914398817,4.823675541898 10 | 307579.460180516,4602221.01350818,3.96552988633934,4.86262950619512 11 | 307604.460180516,4602221.01350818,3.94463546038854,4.85748537112071 12 | 307629.460180516,4602221.01350818,3.93092170343887,4.84865363361185 13 | 307654.460180516,4602221.01350818,3.91742897638554,4.84031708246911 14 | 307679.460180516,4602221.01350818,3.9405698857003,4.84212363470959 15 | 307704.460180516,4602221.01350818,3.95196529139141,4.84268575221749 16 | 307729.460180516,4602221.01350818,3.95335799545916,4.84128952788278 17 | 307754.460180516,4602221.01350818,3.89218089533905,4.82393852923788 18 | 307779.460180516,4602221.01350818,3.85533573635592,4.81318096575908 19 | 307804.460180516,4602221.01350818,3.83480975820029,4.80859346362817 20 | 307504.460180516,4602246.01350818,3.98418690062249,4.86042720500654 21 | 307529.460180516,4602246.01350818,3.99104606375736,4.86524353875142 22 | 307554.460180516,4602246.01350818,3.98966103993257,4.86782159150443 23 | 307579.460180516,4602246.01350818,3.96835286179304,4.86677371341824 24 | 307604.460180516,4602246.01350818,3.94813232598866,4.85985082523686 25 | 307629.460180516,4602246.01350818,3.92668498541263,4.84644098473614 26 | 307654.460180516,4602246.01350818,3.93323414956876,4.84154118970107 27 | 307679.460180516,4602246.01350818,3.92913571329562,4.83637530220054 28 | 307704.460180516,4602246.01350818,3.92572959736785,4.83494281026375 29 | 307729.460180516,4602246.01350818,3.88809122248358,4.82221043699155 30 | 307754.460180516,4602246.01350818,3.83815210481502,4.80963665387758 31 | 307779.460180516,4602246.01350818,3.83477678789477,4.80774258077187 32 | 307804.460180516,4602246.01350818,3.81851125954883,4.80139111138201 33 | 307404.460180516,4602271.01350818,3.82819203864021,4.91712236931633 34 | 307429.460180516,4602271.01350818,3.83059863183826,4.89993092049777 35 | 307454.460180516,4602271.01350818,3.85529904841754,4.88211228455056 36 | 307479.460180516,4602271.01350818,3.8985122300332,4.866673581133 37 | 307504.460180516,4602271.01350818,3.99154015999054,4.85472497375721 38 | 307529.460180516,4602271.01350818,4.00929743114919,4.86290437648466 39 | 307554.460180516,4602271.01350818,3.9911045062137,4.86643096272156 40 | 307579.460180516,4602271.01350818,3.95918218124477,4.86892242023165 41 | 307604.460180516,4602271.01350818,3.93673036086842,4.85486443056715 42 | 307629.460180516,4602271.01350818,3.91948457362195,4.83908146321512 43 | 307654.460180516,4602271.01350818,3.91215171689206,4.83118789565666 44 | 307679.460180516,4602271.01350818,3.91385069239942,4.82890611200431 45 | 307704.460180516,4602271.01350818,3.87600116166656,4.81804025161603 46 | 307729.460180516,4602271.01350818,3.8373162353182,4.80770985888689 47 | 307754.460180516,4602271.01350818,3.83333985798514,4.80580936529756 48 | 307779.460180516,4602271.01350818,3.81742307197943,4.79953598880716 49 | 307804.460180516,4602271.01350818,3.81539473878752,4.79857489050012 50 | 307829.460180516,4602271.01350818,3.81422114365512,4.79801427147534 51 | 307329.460180516,4602296.01350818,3.90589291518187,4.95623302801972 52 | 307354.460180516,4602296.01350818,3.91338782100463,4.96148821023486 53 | 307379.460180516,4602296.01350818,3.81615081769994,4.94589260292477 54 | 307404.460180516,4602296.01350818,3.76849947979973,4.92062312667509 55 | 307429.460180516,4602296.01350818,3.79480837837968,4.9014505349034 56 | 307454.460180516,4602296.01350818,3.84461259135543,4.87889782195872 57 | 307479.460180516,4602296.01350818,3.90324756459175,4.85709593577351 58 | 307504.460180516,4602296.01350818,3.97489657468374,4.8398643969422 59 | 307529.460180516,4602296.01350818,4.0046279496114,4.84812797270409 60 | 307554.460180516,4602296.01350818,3.9772073541795,4.85153684227241 61 | 307579.460180516,4602296.01350818,3.87909366356017,4.83915612138374 62 | 307604.460180516,4602296.01350818,3.87768664555123,4.82391055771394 63 | 307629.460180516,4602296.01350818,3.87271615262236,4.81595936865047 64 | 307654.460180516,4602296.01350818,3.88492734179605,4.81861528696747 65 | 307679.460180516,4602296.01350818,3.85874860754459,4.81106549034936 66 | 307704.460180516,4602296.01350818,3.83255617039412,4.80335361071288 67 | 307729.460180516,4602296.01350818,3.8288815269537,4.80202432725461 68 | 307754.460180516,4602296.01350818,3.8140344555834,4.79619696983253 69 | 307779.460180516,4602296.01350818,3.81935801098737,4.79532951927707 70 | 307804.460180516,4602296.01350818,3.86284612213466,4.80500332735621 71 | 307829.460180516,4602296.01350818,3.81081614990211,4.78769002392805 72 | 307229.460180516,4602321.01350818,3.84968165707929,4.94371104422441 73 | 307254.460180516,4602321.01350818,3.85409903742213,4.94282434075087 74 | 307279.460180516,4602321.01350818,3.8494706059533,4.94370991753324 75 | 307304.460180516,4602321.01350818,3.82796033574385,4.93890845872337 76 | 307329.460180516,4602321.01350818,3.91267551420808,4.95264361224413 77 | 307354.460180516,4602321.01350818,3.88938072129284,4.95108973439701 78 | 307379.460180516,4602321.01350818,3.78518238378839,4.93565051683525 79 | 307404.460180516,4602321.01350818,3.69985748031091,4.92399516138967 80 | 307429.460180516,4602321.01350818,3.7746550523656,4.9070643962862 81 | 307454.460180516,4602321.01350818,3.8440128835101,4.87231834536249 82 | 307479.460180516,4602321.01350818,3.90827327818874,4.83453633522936 83 | 307504.460180516,4602321.01350818,3.94676356959374,4.82187684044701 84 | 307529.460180516,4602321.01350818,3.91821572734792,4.81081535065574 85 | 307554.460180516,4602321.01350818,3.90848170831392,4.8164302751951 86 | 307579.460180516,4602321.01350818,3.78405463652812,4.79860788960193 87 | 307604.460180516,4602321.01350818,3.790295087828,4.78908940858707 88 | 307629.460180516,4602321.01350818,3.82668520160741,4.79447383018774 89 | 307654.460180516,4602321.01350818,3.83083848660084,4.79348591227657 90 | 307679.460180516,4602321.01350818,3.82027148899384,4.79509663507246 91 | 307704.460180516,4602321.01350818,3.80351946151109,4.78812031457598 92 | 307729.460180516,4602321.01350818,3.83902167233884,4.79603329241159 93 | 307754.460180516,4602321.01350818,3.84138439984544,4.79637118192574 94 | 307779.460180516,4602321.01350818,3.81236681778447,4.78602670752916 95 | 307804.460180516,4602321.01350818,3.77705612477542,4.77023301265283 96 | 307829.460180516,4602321.01350818,3.7788197634358,4.77015572623078 97 | 307154.460180516,4602346.01350818,3.70739183761267,4.94251140452156 98 | 307179.460180516,4602346.01350818,3.76509425208914,4.93853283083932 99 | 307204.460180516,4602346.01350818,3.86296837169953,4.94066768264744 100 | 307229.460180516,4602346.01350818,3.8791678708583,4.95061330996305 101 | 307254.460180516,4602346.01350818,3.81848014945558,4.94104164537412 102 | 307279.460180516,4602346.01350818,3.77019996407948,4.93118521659439 103 | 307304.460180516,4602346.01350818,3.72613809208813,4.92271764520493 104 | 307329.460180516,4602346.01350818,3.91532523099667,4.96039227223875 105 | 307354.460180516,4602346.01350818,3.86357390161168,4.94352334569421 106 | 307379.460180516,4602346.01350818,3.75562934372838,4.92691105744624 107 | 307404.460180516,4602346.01350818,3.78323397850651,4.94588327432453 108 | 307429.460180516,4602346.01350818,3.84680194743373,4.93046877051397 109 | 307454.460180516,4602346.01350818,3.84708885073533,4.85864813033682 110 | 307479.460180516,4602346.01350818,3.89526763799255,4.80814746599724 111 | 307504.460180516,4602346.01350818,3.89446498314372,4.79852328281094 112 | 307529.460180516,4602346.01350818,3.85722146094601,4.78559138354302 113 | 307554.460180516,4602346.01350818,3.91438039635931,4.80696637281386 114 | 307579.460180516,4602346.01350818,3.88876411248282,4.81461027350572 115 | 307604.460180516,4602346.01350818,3.80118591612254,4.78615146974176 116 | 307629.460180516,4602346.01350818,3.78977552579106,4.77586129317936 117 | 307654.460180516,4602346.01350818,3.7849381994842,4.77494485387599 118 | 307679.460180516,4602346.01350818,3.80764578601605,4.78044641663506 119 | 307704.460180516,4602346.01350818,3.81029611946284,4.78040402643481 120 | 307729.460180516,4602346.01350818,3.78289813345699,4.76641401735582 121 | 307754.460180516,4602346.01350818,3.76714227275571,4.76289445059422 122 | 307779.460180516,4602346.01350818,3.76940524540804,4.76252483319186 123 | 307804.460180516,4602346.01350818,3.81415487462003,4.76871986752654 124 | 307829.460180516,4602346.01350818,3.88445911903754,4.79208775955606 125 | 307854.460180516,4602346.01350818,3.82706028436756,4.77423269848122 126 | 307079.460180516,4602371.01350818,3.62530179240606,4.94782734879465 127 | 307104.460180516,4602371.01350818,3.62081215819299,4.9269807576107 128 | 307129.460180516,4602371.01350818,3.60394558139508,4.93899600257604 129 | 307154.460180516,4602371.01350818,3.62615821783102,4.92835460929981 130 | 307179.460180516,4602371.01350818,3.74089194387995,4.92240258986225 131 | 307204.460180516,4602371.01350818,3.88524774919686,4.92624374872057 132 | 307229.460180516,4602371.01350818,3.90704336015669,4.95048141198467 133 | 307254.460180516,4602371.01350818,3.84971160379336,4.95392417083264 134 | 307279.460180516,4602371.01350818,3.74808330520651,4.93541920746708 135 | 307304.460180516,4602371.01350818,3.82300393738918,4.9528190118669 136 | 307329.460180516,4602371.01350818,3.87494768186582,4.95751308679613 137 | 307354.460180516,4602371.01350818,3.77715570673712,4.92888747095091 138 | 307379.460180516,4602371.01350818,3.64587694531726,4.90325605130904 139 | 307404.460180516,4602371.01350818,3.67469440513005,4.92474316030326 140 | 307429.460180516,4602371.01350818,3.67099622022036,4.90266288360953 141 | 307454.460180516,4602371.01350818,3.79143005709939,4.83918240310644 142 | 307479.460180516,4602371.01350818,3.88956713511387,4.78703258728644 143 | 307504.460180516,4602371.01350818,3.88848530019845,4.77589741427781 144 | 307529.460180516,4602371.01350818,3.85239614867334,4.77206330752894 145 | 307554.460180516,4602371.01350818,3.94510580333303,4.79807503255855 146 | 307579.460180516,4602371.01350818,3.9844964202084,4.82023806539646 147 | 307604.460180516,4602371.01350818,3.94092903676615,4.80700237663517 148 | 307629.460180516,4602371.01350818,3.82053289967876,4.77959271301719 149 | 307654.460180516,4602371.01350818,3.78991778253811,4.77176100058392 150 | 307679.460180516,4602371.01350818,3.76419227447861,4.76285956596384 151 | 307704.460180516,4602371.01350818,3.74643207629141,4.75806759781337 152 | 307729.460180516,4602371.01350818,3.78093419943771,4.76176993300231 153 | 307754.460180516,4602371.01350818,3.78159327365043,4.75866338806 154 | 307779.460180516,4602371.01350818,3.85305800223709,4.78056387891905 155 | 307804.460180516,4602371.01350818,3.80745474499222,4.76795855194975 156 | 307829.460180516,4602371.01350818,3.81077470032399,4.7681772038603 157 | 307854.460180516,4602371.01350818,3.79340003544019,4.76067574755271 158 | 307004.460180516,4602396.01350818,3.58509515588672,4.98259370824046 159 | 307029.460180516,4602396.01350818,3.57789283117864,4.98102425776706 160 | 307054.460180516,4602396.01350818,3.61083014302709,4.97225666160412 161 | 307079.460180516,4602396.01350818,3.59057823117046,4.94082180976541 162 | 307104.460180516,4602396.01350818,3.43981722019218,4.90517179886606 163 | 307129.460180516,4602396.01350818,3.39776497866111,4.90648387903566 164 | 307154.460180516,4602396.01350818,3.49282065322738,4.90856532187771 165 | 307179.460180516,4602396.01350818,3.69445251921488,4.90594679788723 166 | 307204.460180516,4602396.01350818,3.8049044144525,4.87907669876379 167 | 307229.460180516,4602396.01350818,3.8557406669055,4.93277143307379 168 | 307254.460180516,4602396.01350818,3.79863510404814,4.94136934164327 169 | 307279.460180516,4602396.01350818,3.700482708275,4.92542901490416 170 | 307304.460180516,4602396.01350818,3.72971631879308,4.93231607571265 171 | 307329.460180516,4602396.01350818,3.77170698309392,4.93667537602634 172 | 307354.460180516,4602396.01350818,3.67349135658575,4.90884042868193 173 | 307379.460180516,4602396.01350818,3.57089046044879,4.88835611683383 174 | 307404.460180516,4602396.01350818,3.53472998177995,4.89080335985333 175 | 307429.460180516,4602396.01350818,3.52205058330226,4.88193323148413 176 | 307454.460180516,4602396.01350818,3.73359025212021,4.84588149791912 177 | 307479.460180516,4602396.01350818,3.9455021854884,4.80953358489054 178 | 307504.460180516,4602396.01350818,3.91121316397128,4.7857262113909 179 | 307529.460180516,4602396.01350818,3.87385266522733,4.78066639965463 180 | 307554.460180516,4602396.01350818,3.94149088311294,4.78807359464041 181 | 307579.460180516,4602396.01350818,3.93072696759029,4.79352707222347 182 | 307604.460180516,4602396.01350818,3.87002415183095,4.77380603132967 183 | 307629.460180516,4602396.01350818,3.76134737558684,4.76181848704802 184 | 307654.460180516,4602396.01350818,3.7377953377235,4.75635074787569 185 | 307679.460180516,4602396.01350818,3.74836566318406,4.75543602525862 186 | 307704.460180516,4602396.01350818,3.82369601447939,4.77465390416858 187 | 307729.460180516,4602396.01350818,3.84076338540748,4.77689251053715 188 | 307754.460180516,4602396.01350818,3.80754117772043,4.76785555356577 189 | 307779.460180516,4602396.01350818,3.79983887044445,4.7613237409105 190 | 307804.460180516,4602396.01350818,3.80559918326196,4.76228538345051 191 | 307829.460180516,4602396.01350818,3.81483668160921,4.76294277277036 192 | 307854.460180516,4602396.01350818,3.81805144356919,4.75999600742863 193 | 306929.460180516,4602421.01350818,3.57017311426461,4.86370942916176 194 | 306954.460180516,4602421.01350818,3.59395474156999,4.89926314551394 195 | 306979.460180516,4602421.01350818,3.62389938946884,4.99738260375562 196 | 307004.460180516,4602421.01350818,3.60911882343662,4.99621803338752 197 | 307029.460180516,4602421.01350818,3.58029638704638,4.99048940335985 198 | 307054.460180516,4602421.01350818,3.61511353070065,4.97825902062524 199 | 307079.460180516,4602421.01350818,3.64823136108964,4.95340213615872 200 | 307104.460180516,4602421.01350818,3.3956175167493,4.9063833580707 201 | 307129.460180516,4602421.01350818,3.41987997093805,4.90748246998577 202 | 307154.460180516,4602421.01350818,3.656195251923,4.9384171068443 203 | 307179.460180516,4602421.01350818,3.73728847991843,4.9354794609581 204 | 307204.460180516,4602421.01350818,3.86567977586503,4.94299344144397 205 | 307229.460180516,4602421.01350818,3.88866563549061,4.95290577598773 206 | 307254.460180516,4602421.01350818,3.72648287223548,4.92561969334005 207 | 307279.460180516,4602421.01350818,3.62370168542096,4.91498198066681 208 | 307304.460180516,4602421.01350818,3.63591359657151,4.91769129831554 209 | 307329.460180516,4602421.01350818,3.6828041982358,4.92175301523606 210 | 307354.460180516,4602421.01350818,3.71192155403471,4.92079066065773 211 | 307379.460180516,4602421.01350818,3.60915953888919,4.89594692920949 212 | 307404.460180516,4602421.01350818,3.55327379572404,4.88942737841866 213 | 307429.460180516,4602421.01350818,3.53884740976846,4.88856025209921 214 | 307454.460180516,4602421.01350818,3.71627020054718,4.86787669083473 215 | 307479.460180516,4602421.01350818,3.94637216585444,4.8405572138835 216 | 307504.460180516,4602421.01350818,4.03970620884701,4.83551600842036 217 | 307529.460180516,4602421.01350818,4.06236664397983,4.840488208446 218 | 307554.460180516,4602421.01350818,3.95588089950073,4.80314095006511 219 | 307579.460180516,4602421.01350818,3.964704202595,4.80320793334616 220 | 307604.460180516,4602421.01350818,3.88299702778348,4.78112713042041 221 | 307629.460180516,4602421.01350818,3.73711415382313,4.74738372073689 222 | 307654.460180516,4602421.01350818,3.73674490449587,4.74482521352059 223 | 307679.460180516,4602421.01350818,3.78178368924631,4.76286399599801 224 | 307704.460180516,4602421.01350818,3.79590487906916,4.76648313509161 225 | 307729.460180516,4602421.01350818,3.79629720873158,4.76385015784755 226 | 307754.460180516,4602421.01350818,3.809431928709,4.76563284587454 227 | 307779.460180516,4602421.01350818,3.81447550737215,4.76609889391449 228 | 307804.460180516,4602421.01350818,3.81983530440055,4.76386786085765 229 | 307829.460180516,4602421.01350818,3.80903321470791,4.75996969713221 230 | 307854.460180516,4602421.01350818,3.76178782885971,4.74779269666564 231 | 306854.460180516,4602446.01350818,3.55290641018876,4.7779297899002 232 | 306879.460180516,4602446.01350818,3.52638938822634,4.77397108942091 233 | 306904.460180516,4602446.01350818,3.52901045903251,4.77451392847163 234 | 306929.460180516,4602446.01350818,3.50897732504434,4.83741217294431 235 | 306954.460180516,4602446.01350818,3.56750181938453,4.88680494117599 236 | 306979.460180516,4602446.01350818,3.6665679920827,4.94671908094403 237 | 307004.460180516,4602446.01350818,3.63671234900126,5.002500359237 238 | 307029.460180516,4602446.01350818,3.64882799332133,4.99945596995169 239 | 307054.460180516,4602446.01350818,3.6944812232858,4.98989618526173 240 | 307079.460180516,4602446.01350818,3.70257623798069,4.96331602983595 241 | 307104.460180516,4602446.01350818,3.49868600660064,4.92086565523489 242 | 307129.460180516,4602446.01350818,3.46061440973033,4.91590840078134 243 | 307154.460180516,4602446.01350818,3.62045270598596,4.9481099166985 244 | 307179.460180516,4602446.01350818,3.83312426239865,4.97995990968904 245 | 307204.460180516,4602446.01350818,3.96597792451497,4.99017346831906 246 | 307229.460180516,4602446.01350818,3.98879957752323,4.97789079346365 247 | 307254.460180516,4602446.01350818,3.81947972178212,4.95187109659507 248 | 307279.460180516,4602446.01350818,3.74198148333476,4.93759545677808 249 | 307304.460180516,4602446.01350818,3.71480771311015,4.93210014560786 250 | 307329.460180516,4602446.01350818,3.65528639015409,4.91573323058231 251 | 307354.460180516,4602446.01350818,3.72004486905905,4.92326629572468 252 | 307379.460180516,4602446.01350818,3.68420403727874,4.91358753298738 253 | 307404.460180516,4602446.01350818,3.61827484399317,4.90374526794671 254 | 307429.460180516,4602446.01350818,3.59752891251683,4.90323415569968 255 | 307454.460180516,4602446.01350818,3.6954264772929,4.88632626849132 256 | 307479.460180516,4602446.01350818,3.90050952556222,4.85131057838432 257 | 307504.460180516,4602446.01350818,4.14403907097799,4.86894982675317 258 | 307529.460180516,4602446.01350818,4.10559657621644,4.85312565644329 259 | 307554.460180516,4602446.01350818,3.93499002093844,4.79665560965853 260 | 307579.460180516,4602446.01350818,4.04307331149097,4.82846645565187 261 | 307604.460180516,4602446.01350818,3.99701360551666,4.80960217737409 262 | 307629.460180516,4602446.01350818,3.84179037728667,4.75914432244726 263 | 307654.460180516,4602446.01350818,3.75557149036817,4.7478022055629 264 | 307679.460180516,4602446.01350818,3.78365731508974,4.75804773455345 265 | 307704.460180516,4602446.01350818,3.80096635078803,4.762022218835 266 | 307729.460180516,4602446.01350818,3.77495971180861,4.75069935956938 267 | 307754.460180516,4602446.01350818,3.77353604296739,4.74916978390887 268 | 307779.460180516,4602446.01350818,3.76494224980609,4.74638636071989 269 | 307804.460180516,4602446.01350818,3.71272762599238,4.73445853893259 270 | 307829.460180516,4602446.01350818,3.69502267583098,4.72483695067983 271 | 307854.460180516,4602446.01350818,3.6855888830734,4.72245879407312 272 | 307879.460180516,4602446.01350818,3.79532118344845,4.77414002480853 273 | 306779.460180516,4602471.01350818,3.37202925399026,4.76918158336078 274 | 306804.460180516,4602471.01350818,3.48774152477988,4.78649822338613 275 | 306829.460180516,4602471.01350818,3.64634525599703,4.80018158548535 276 | 306854.460180516,4602471.01350818,3.63208434886475,4.78969466686016 277 | 306879.460180516,4602471.01350818,3.57777690003101,4.78582370889574 278 | 306904.460180516,4602471.01350818,3.51346613263284,4.77417752028763 279 | 306929.460180516,4602471.01350818,3.53074337768889,4.77916511570609 280 | 306954.460180516,4602471.01350818,3.58504865978839,4.88278633068242 281 | 306979.460180516,4602471.01350818,3.59682977523178,4.93006420693292 282 | 307004.460180516,4602471.01350818,3.72790037958427,5.02275798960223 283 | 307029.460180516,4602471.01350818,3.73270125110419,5.01463998465215 284 | 307054.460180516,4602471.01350818,3.76936524925414,5.01176147869837 285 | 307079.460180516,4602471.01350818,3.68693825297434,4.97457122999844 286 | 307104.460180516,4602471.01350818,3.52626207346022,4.93079049825679 287 | 307129.460180516,4602471.01350818,3.46583085405979,4.92494975453697 288 | 307154.460180516,4602471.01350818,3.73755639273747,4.98806288428757 289 | 307179.460180516,4602471.01350818,4.02419436261547,5.05357198247926 290 | 307204.460180516,4602471.01350818,4.09867606754627,5.06260007570023 291 | 307229.460180516,4602471.01350818,4.06386410897619,5.01626376306471 292 | 307254.460180516,4602471.01350818,3.988713522531,4.99484828400993 293 | 307279.460180516,4602471.01350818,3.89818895781253,4.96976925651083 294 | 307304.460180516,4602471.01350818,3.75403376767,4.93989563213884 295 | 307329.460180516,4602471.01350818,3.81673051323937,4.94361204884334 296 | 307354.460180516,4602471.01350818,3.82884572412713,4.94254564564165 297 | 307379.460180516,4602471.01350818,3.74899615336866,4.92686296841291 298 | 307404.460180516,4602471.01350818,3.67068580732035,4.91282537737576 299 | 307429.460180516,4602471.01350818,3.5291924843651,4.89198034708849 300 | 307454.460180516,4602471.01350818,3.46033272832025,4.86615903766376 301 | 307479.460180516,4602471.01350818,3.87475234990658,4.87746482255206 302 | 307504.460180516,4602471.01350818,4.20217251726489,4.88149876397056 303 | 307529.460180516,4602471.01350818,3.99968063230736,4.81294724852988 304 | 307554.460180516,4602471.01350818,3.8874325528061,4.77609203727334 305 | 307579.460180516,4602471.01350818,4.0216589199971,4.80719577354765 306 | 307604.460180516,4602471.01350818,3.89209797423988,4.77212946164725 307 | 307629.460180516,4602471.01350818,3.82425985671399,4.74571685707336 308 | 307654.460180516,4602471.01350818,3.83566823859872,4.76276577714057 309 | 307679.460180516,4602471.01350818,3.8263686181263,4.7620544406794 310 | 307704.460180516,4602471.01350818,3.82099486116081,4.75880230674786 311 | 307729.460180516,4602471.01350818,3.77122772225479,4.74671211458647 312 | 307754.460180516,4602471.01350818,3.7547151232782,4.74184855811302 313 | 307779.460180516,4602471.01350818,3.72655902701715,4.73247104086226 314 | 307804.460180516,4602471.01350818,3.71647303366097,4.72918434686621 315 | 307829.460180516,4602471.01350818,3.85227507927332,4.78512254902395 316 | 307854.460180516,4602471.01350818,3.85091106481891,4.78700414666207 317 | 307879.460180516,4602471.01350818,3.85042716693551,4.7879300203244 318 | 306704.460180516,4602496.01350818,3.57337863687348,4.81843746596137 319 | 306729.460180516,4602496.01350818,3.35333191958487,4.7771983792482 320 | 306754.460180516,4602496.01350818,3.24809911277501,4.75293026741909 321 | 306779.460180516,4602496.01350818,3.25719901322596,4.76366753744856 322 | 306804.460180516,4602496.01350818,3.47123326323364,4.8031682885611 323 | 306829.460180516,4602496.01350818,3.81823577885105,4.85453685046591 324 | 306854.460180516,4602496.01350818,3.71062721167021,4.82499278163024 325 | 306879.460180516,4602496.01350818,3.5388538625597,4.7886743403671 326 | 306904.460180516,4602496.01350818,3.48382759823492,4.77536927102753 327 | 306929.460180516,4602496.01350818,3.47098305597777,4.77092638001068 328 | 306954.460180516,4602496.01350818,3.548968732562,4.85911667640909 329 | 306979.460180516,4602496.01350818,3.59988486506471,4.91628666604023 330 | 307004.460180516,4602496.01350818,3.76887271291725,5.03388548231134 331 | 307029.460180516,4602496.01350818,3.81903963424981,5.03692684517027 332 | 307054.460180516,4602496.01350818,3.8305822652292,5.03501023321029 333 | 307079.460180516,4602496.01350818,3.78940345209166,5.01777304415144 334 | 307104.460180516,4602496.01350818,3.72684648348953,4.9908170170802 335 | 307129.460180516,4602496.01350818,3.70954776485308,4.98418590778475 336 | 307154.460180516,4602496.01350818,3.93601909800318,5.05281586190666 337 | 307179.460180516,4602496.01350818,4.29853881296605,5.18963731133411 338 | 307204.460180516,4602496.01350818,4.34452508811005,5.18261842701725 339 | 307229.460180516,4602496.01350818,4.28395809913353,5.12442684147158 340 | 307254.460180516,4602496.01350818,4.17037234339427,5.06445615434883 341 | 307279.460180516,4602496.01350818,3.96291465852193,5.00965824568858 342 | 307304.460180516,4602496.01350818,3.87086814715889,4.97902568830919 343 | 307329.460180516,4602496.01350818,3.84322175966296,4.95226241794376 344 | 307354.460180516,4602496.01350818,3.87251055197506,4.94562763546013 345 | 307379.460180516,4602496.01350818,3.8083879411449,4.9332925513204 346 | 307404.460180516,4602496.01350818,3.71221185833617,4.91574653531978 347 | 307429.460180516,4602496.01350818,3.55126302135894,4.88974623902478 348 | 307454.460180516,4602496.01350818,3.31536869626018,4.85464799301205 349 | 307479.460180516,4602496.01350818,3.68262031869421,4.85475802851307 350 | 307504.460180516,4602496.01350818,4.03032968784179,4.83213722668906 351 | 307529.460180516,4602496.01350818,3.91036936123215,4.77809238332832 352 | 307554.460180516,4602496.01350818,3.7753737147664,4.74363504615665 353 | 307579.460180516,4602496.01350818,3.76864057336738,4.74102397012926 354 | 307604.460180516,4602496.01350818,3.72545680979008,4.73057808793102 355 | 307629.460180516,4602496.01350818,3.85492963954847,4.75870678609007 356 | 307654.460180516,4602496.01350818,3.93856043942863,4.78220985842852 357 | 307679.460180516,4602496.01350818,3.87054579091726,4.76859367979816 358 | 307704.460180516,4602496.01350818,3.81015648647959,4.75306371430128 359 | 307729.460180516,4602496.01350818,3.74237162827447,4.73320009475774 360 | 307754.460180516,4602496.01350818,3.81228471635153,4.76865179782703 361 | 307779.460180516,4602496.01350818,3.81048267251718,4.77133604075672 362 | 307804.460180516,4602496.01350818,3.80125790379598,4.77291487746368 363 | 307829.460180516,4602496.01350818,3.79790217298504,4.77382338777306 364 | 307854.460180516,4602496.01350818,3.78724416732916,4.77167183563806 365 | 307879.460180516,4602496.01350818,3.78299838707433,4.77108111995529 366 | 306629.460180516,4602521.01350818,4.07715306959033,4.90931680068375 367 | 306654.460180516,4602521.01350818,3.98954970107537,4.89848811433195 368 | 306679.460180516,4602521.01350818,3.81595188531363,4.86694850055492 369 | 306704.460180516,4602521.01350818,3.66035536720778,4.83404901808225 370 | 306729.460180516,4602521.01350818,3.38269857695777,4.78290754898821 371 | 306754.460180516,4602521.01350818,3.07501436178272,4.73210972414165 372 | 306779.460180516,4602521.01350818,3.0987418552829,4.73690322616392 373 | 306804.460180516,4602521.01350818,3.35964836217093,4.78456767000871 374 | 306829.460180516,4602521.01350818,3.76201356682951,4.85996551631582 375 | 306854.460180516,4602521.01350818,3.55373503354235,4.80784582372233 376 | 306879.460180516,4602521.01350818,3.36108771621717,4.76519717685854 377 | 306904.460180516,4602521.01350818,3.40152162425316,4.76330994595913 378 | 306929.460180516,4602521.01350818,3.36745270212756,4.76108524456583 379 | 306954.460180516,4602521.01350818,3.4823883871499,4.83348424546428 380 | 306979.460180516,4602521.01350818,3.6222191768273,4.9024206719336 381 | 307004.460180516,4602521.01350818,3.81014806139167,5.03886873346284 382 | 307029.460180516,4602521.01350818,3.86941811367198,5.05040314335841 383 | 307054.460180516,4602521.01350818,3.8792125512557,5.05598420090222 384 | 307079.460180516,4602521.01350818,3.9200102935541,5.06395481207592 385 | 307104.460180516,4602521.01350818,4.03797445881826,5.07881084234375 386 | 307129.460180516,4602521.01350818,3.99992013892981,5.04736029085813 387 | 307154.460180516,4602521.01350818,4.06278248783172,5.07971986253919 388 | 307179.460180516,4602521.01350818,4.43597172922303,5.24497303191865 389 | 307204.460180516,4602521.01350818,4.58649595049598,5.28396290944136 390 | 307229.460180516,4602521.01350818,4.51041392963278,5.21939830052779 391 | 307254.460180516,4602521.01350818,4.4604343746112,5.16787733618807 392 | 307279.460180516,4602521.01350818,4.33147030454445,5.13514974774064 393 | 307304.460180516,4602521.01350818,4.07241749745971,5.05301612288964 394 | 307329.460180516,4602521.01350818,3.76961904404271,4.9501440752543 395 | 307354.460180516,4602521.01350818,3.87550541843755,4.94715306825234 396 | 307379.460180516,4602521.01350818,3.86005154590222,4.94213382003086 397 | 307404.460180516,4602521.01350818,3.81358016685968,4.93132646544981 398 | 307429.460180516,4602521.01350818,3.67253290886983,4.90816393031463 399 | 307454.460180516,4602521.01350818,3.49279277470776,4.88322575923147 400 | 307479.460180516,4602521.01350818,3.52105812889607,4.83748069507413 401 | 307504.460180516,4602521.01350818,3.71845864660282,4.77037181406237 402 | 307529.460180516,4602521.01350818,3.73313153846266,4.72584721075232 403 | 307554.460180516,4602521.01350818,3.71043199884134,4.71255410090337 404 | 307579.460180516,4602521.01350818,3.62056346552698,4.6972518657319 405 | 307604.460180516,4602521.01350818,3.51835500717263,4.68225420221586 406 | 307629.460180516,4602521.01350818,3.62192726108723,4.70428144208511 407 | 307654.460180516,4602521.01350818,3.74982340029829,4.73472494790002 408 | 307679.460180516,4602521.01350818,3.81154477510852,4.74706101550098 409 | 307704.460180516,4602521.01350818,3.82735332369217,4.76535655601482 410 | 307729.460180516,4602521.01350818,3.82972402736433,4.77192325400931 411 | 307754.460180516,4602521.01350818,3.83364496605252,4.77849399486266 412 | 307779.460180516,4602521.01350818,3.79026540905445,4.77237586747069 413 | 307804.460180516,4602521.01350818,3.78042407686856,4.77220577264994 414 | 307829.460180516,4602521.01350818,3.77139200644975,4.77124461990826 415 | 307854.460180516,4602521.01350818,3.76353065772232,4.76990255550286 416 | 307879.460180516,4602521.01350818,3.75690172859344,4.7684175176699 417 | 307904.460180516,4602521.01350818,3.75142031981169,4.76692234334705 418 | 306554.460180516,4602546.01350818,4.21384515701539,4.96025087995087 419 | 306579.460180516,4602546.01350818,4.2343160441427,4.95359985408063 420 | 306604.460180516,4602546.01350818,4.23572289096151,4.94974200642222 421 | 306629.460180516,4602546.01350818,4.16006797320888,4.92018515769086 422 | 306654.460180516,4602546.01350818,4.0415684110069,4.90188982658675 423 | 306679.460180516,4602546.01350818,3.91322629258979,4.88618899646002 424 | 306704.460180516,4602546.01350818,3.76564029964775,4.85711386146287 425 | 306729.460180516,4602546.01350818,3.47547997006581,4.79886466981481 426 | 306754.460180516,4602546.01350818,3.03549473316487,4.73118068759581 427 | 306779.460180516,4602546.01350818,2.98501258368661,4.71264219954276 428 | 306804.460180516,4602546.01350818,3.01783701799869,4.71215176356323 429 | 306829.460180516,4602546.01350818,3.18728079972822,4.73431496745912 430 | 306854.460180516,4602546.01350818,3.24381567036903,4.73709993163357 431 | 306879.460180516,4602546.01350818,3.2825580015896,4.74105523810825 432 | 306904.460180516,4602546.01350818,3.34408504583132,4.75304146476134 433 | 306929.460180516,4602546.01350818,3.35223375596357,4.75713479849699 434 | 306954.460180516,4602546.01350818,3.28061176368606,4.74716669606823 435 | 306979.460180516,4602546.01350818,3.52009633304173,4.87802960219714 436 | 307004.460180516,4602546.01350818,3.72343051077649,4.96006246209102 437 | 307029.460180516,4602546.01350818,3.85599096675713,5.05227197755401 438 | 307054.460180516,4602546.01350818,3.88535289159385,5.06200377027642 439 | 307079.460180516,4602546.01350818,3.93542332284413,5.07455235895636 440 | 307104.460180516,4602546.01350818,3.96911734542151,5.06871207837104 441 | 307129.460180516,4602546.01350818,3.93312570036706,5.0408243216677 442 | 307154.460180516,4602546.01350818,3.93978691272386,5.0506885374368 443 | 307179.460180516,4602546.01350818,4.35923659686994,5.20625383668458 444 | 307204.460180516,4602546.01350818,4.69532920127443,5.3242186040959 445 | 307229.460180516,4602546.01350818,4.59809225413447,5.26419380180386 446 | 307254.460180516,4602546.01350818,4.50213764537789,5.20057184458361 447 | 307279.460180516,4602546.01350818,4.41933850987248,5.16718607767572 448 | 307304.460180516,4602546.01350818,4.18785997346358,5.09685652090091 449 | 307329.460180516,4602546.01350818,3.79613521947221,4.96759992513979 450 | 307354.460180516,4602546.01350818,3.78959266619759,4.93638321516944 451 | 307379.460180516,4602546.01350818,3.90007837886266,4.95331262480729 452 | 307404.460180516,4602546.01350818,3.91259720880489,4.95493972454073 453 | 307429.460180516,4602546.01350818,3.87389614436014,4.95353152928682 454 | 307454.460180516,4602546.01350818,3.63290315623235,4.92093443428941 455 | 307479.460180516,4602546.01350818,3.49604348215528,4.86485815794422 456 | 307504.460180516,4602546.01350818,3.62130121663961,4.77984337160665 457 | 307529.460180516,4602546.01350818,3.66430160953847,4.71374827990281 458 | 307554.460180516,4602546.01350818,3.66025199346112,4.70083166793437 459 | 307579.460180516,4602546.01350818,3.56824843341266,4.6876962580149 460 | 307604.460180516,4602546.01350818,3.42450664449311,4.65878591737073 461 | 307629.460180516,4602546.01350818,3.51836634471888,4.67579751198776 462 | 307654.460180516,4602546.01350818,3.65029727167019,4.7076799318714 463 | 307679.460180516,4602546.01350818,3.75344866786867,4.73350253166855 464 | 307704.460180516,4602546.01350818,3.80365517504093,4.75985719231444 465 | 307729.460180516,4602546.01350818,3.83005482298255,4.7750405062115 466 | 307754.460180516,4602546.01350818,3.83672526046255,4.78155520652908 467 | 307779.460180516,4602546.01350818,3.81224402289518,4.77818960306916 468 | 307804.460180516,4602546.01350818,3.79756505506536,4.77702149570017 469 | 307829.460180516,4602546.01350818,3.78705377732921,4.7750774539691 470 | 307854.460180516,4602546.01350818,3.7777328338926,4.772851029144 471 | 307879.460180516,4602546.01350818,3.76982428707534,4.77060405968162 472 | 307904.460180516,4602546.01350818,3.76327169031028,4.76846121305991 473 | 306479.460180516,4602571.01350818,4.22644675034334,4.97249844755789 474 | 306504.460180516,4602571.01350818,4.25115443040239,4.99047267608457 475 | 306529.460180516,4602571.01350818,4.17369625433938,4.97166439529463 476 | 306554.460180516,4602571.01350818,4.07343280741288,4.90207810574014 477 | 306579.460180516,4602571.01350818,4.15775281658571,4.91581627150158 478 | 306604.460180516,4602571.01350818,4.29660075068611,4.9441419641955 479 | 306629.460180516,4602571.01350818,4.21796842788337,4.9117470073375 480 | 306654.460180516,4602571.01350818,4.14681694658981,4.92153069687597 481 | 306679.460180516,4602571.01350818,3.99550104172789,4.9050475155372 482 | 306704.460180516,4602571.01350818,3.79513721054625,4.87080502077486 483 | 306729.460180516,4602571.01350818,3.4630625350903,4.79152427203988 484 | 306754.460180516,4602571.01350818,3.27595603117014,4.75980889330025 485 | 306779.460180516,4602571.01350818,3.16037726874565,4.73258721125375 486 | 306804.460180516,4602571.01350818,3.0094464836921,4.70144718971978 487 | 306829.460180516,4602571.01350818,3.01327965022842,4.69697079055196 488 | 306854.460180516,4602571.01350818,3.22095149978632,4.72433676315196 489 | 306879.460180516,4602571.01350818,3.36477195669503,4.7518691624398 490 | 306904.460180516,4602571.01350818,3.39476141326124,4.76089583721473 491 | 306929.460180516,4602571.01350818,3.26392382397209,4.74098024340889 492 | 306954.460180516,4602571.01350818,3.24349645789464,4.73610751604405 493 | 306979.460180516,4602571.01350818,3.56629971336422,4.89203003931485 494 | 307004.460180516,4602571.01350818,3.75267703530179,4.97727749270024 495 | 307029.460180516,4602571.01350818,3.9984422725072,5.09631967292199 496 | 307054.460180516,4602571.01350818,4.00149024103444,5.0980774711517 497 | 307079.460180516,4602571.01350818,3.94212794390396,5.07751702224991 498 | 307104.460180516,4602571.01350818,3.81518452515411,5.03209749225755 499 | 307129.460180516,4602571.01350818,3.79489692658859,5.01403670735246 500 | 307154.460180516,4602571.01350818,3.89602501099005,5.03643652793032 501 | 307179.460180516,4602571.01350818,4.19837042444659,5.14534661542531 502 | 307204.460180516,4602571.01350818,4.53926463606245,5.26304828354727 503 | 307229.460180516,4602571.01350818,4.5931761468641,5.2604092372817 504 | 307254.460180516,4602571.01350818,4.46120181848405,5.19207539473637 505 | 307279.460180516,4602571.01350818,4.33511195258774,5.12779845576328 506 | 307304.460180516,4602571.01350818,4.07548077913675,5.05255589545622 507 | 307329.460180516,4602571.01350818,3.63236346848959,4.93834249412617 508 | 307354.460180516,4602571.01350818,3.68333784565992,4.92177359120955 509 | 307379.460180516,4602571.01350818,3.91871423191814,4.95936685456783 510 | 307404.460180516,4602571.01350818,3.92568330358674,4.96294454937124 511 | 307429.460180516,4602571.01350818,3.91490113500254,4.96966010136678 512 | 307454.460180516,4602571.01350818,3.74123844881445,4.94224156083208 513 | 307479.460180516,4602571.01350818,3.78118355902484,4.95608085374743 514 | 307504.460180516,4602571.01350818,3.73383462221611,4.84127027722425 515 | 307529.460180516,4602571.01350818,3.78571806914192,4.75386516963354 516 | 307554.460180516,4602571.01350818,3.64548089007824,4.70437006926875 517 | 307579.460180516,4602571.01350818,3.60786779337606,4.69694572974691 518 | 307604.460180516,4602571.01350818,3.46454283802661,4.67007138952236 519 | 307629.460180516,4602571.01350818,3.52261030184235,4.67740928126674 520 | 307654.460180516,4602571.01350818,3.5875266627903,4.69482556902663 521 | 307679.460180516,4602571.01350818,3.64814217772952,4.7188252414495 522 | 307704.460180516,4602571.01350818,3.75286269497491,4.75559346016784 523 | 307729.460180516,4602571.01350818,3.76972307874025,4.76536674292878 524 | 307754.460180516,4602571.01350818,3.75937117989862,4.76452429043104 525 | 307779.460180516,4602571.01350818,3.74351165542619,4.76172401093769 526 | 307804.460180516,4602571.01350818,3.72848577445432,4.75827897657615 527 | 307829.460180516,4602571.01350818,3.80221698904576,4.77956297759959 528 | 307854.460180516,4602571.01350818,3.79574860254443,4.77783785208431 529 | 306404.460180516,4602596.01350818,4.07889273695337,4.92091865210152 530 | 306429.460180516,4602596.01350818,4.08535343096591,4.90494350435171 531 | 306454.460180516,4602596.01350818,4.16304816586184,4.92088020545971 532 | 306479.460180516,4602596.01350818,4.08412197972403,4.91361995779975 533 | 306504.460180516,4602596.01350818,3.83366895071377,4.85236885302362 534 | 306529.460180516,4602596.01350818,3.66634702187905,4.80493092623031 535 | 306554.460180516,4602596.01350818,3.52865128625286,4.75275914541767 536 | 306579.460180516,4602596.01350818,3.89301429014671,4.84169929641663 537 | 306604.460180516,4602596.01350818,4.34352985379263,4.95432180553588 538 | 306629.460180516,4602596.01350818,4.34036102588323,4.94862639668953 539 | 306654.460180516,4602596.01350818,4.26495570474083,4.95110308754432 540 | 306679.460180516,4602596.01350818,4.08907813806806,4.93204466329484 541 | 306704.460180516,4602596.01350818,3.92776949696498,4.9092427545207 542 | 306729.460180516,4602596.01350818,3.7993493055318,4.86080541327364 543 | 306754.460180516,4602596.01350818,3.65892641594852,4.82221096233573 544 | 306779.460180516,4602596.01350818,3.60564853944737,4.79933549635598 545 | 306804.460180516,4602596.01350818,3.26752824482418,4.74283664442838 546 | 306829.460180516,4602596.01350818,3.10766426554507,4.71144243481499 547 | 306854.460180516,4602596.01350818,3.29741272039066,4.74110316041937 548 | 306879.460180516,4602596.01350818,3.28491782787942,4.74464655837531 549 | 306904.460180516,4602596.01350818,3.21909035337095,4.73004007573129 550 | 306929.460180516,4602596.01350818,3.15568766031893,4.72196615456116 551 | 306954.460180516,4602596.01350818,3.33336703149132,4.79558005171893 552 | 306979.460180516,4602596.01350818,3.54122997614965,4.88220701744458 553 | 307004.460180516,4602596.01350818,3.72613620734278,4.97629811490839 554 | 307029.460180516,4602596.01350818,4.03187205666756,5.10067672554556 555 | 307054.460180516,4602596.01350818,4.04858073163942,5.10925739927141 556 | 307079.460180516,4602596.01350818,4.01025790186571,5.09323090309658 557 | 307104.460180516,4602596.01350818,3.95546371369998,5.07606644138665 558 | 307129.460180516,4602596.01350818,3.83006978030597,5.02564334906236 559 | 307154.460180516,4602596.01350818,3.85954514790674,5.02468071666571 560 | 307179.460180516,4602596.01350818,4.04186544468076,5.08676863051395 561 | 307204.460180516,4602596.01350818,4.41667521987935,5.21250560029178 562 | 307229.460180516,4602596.01350818,4.55353282466869,5.24083625064693 563 | 307254.460180516,4602596.01350818,4.40875727388433,5.16990105326646 564 | 307279.460180516,4602596.01350818,4.29471711749332,5.10596676399746 565 | 307304.460180516,4602596.01350818,4.07224660747719,5.04265569984362 566 | 307329.460180516,4602596.01350818,3.77353801143157,4.96307531560031 567 | 307354.460180516,4602596.01350818,3.65944379206332,4.91727850233836 568 | 307379.460180516,4602596.01350818,3.82041557939791,4.93578111609233 569 | 307404.460180516,4602596.01350818,3.87305863815287,4.95479184382816 570 | 307429.460180516,4602596.01350818,3.72461907791804,4.92491055159263 571 | 307454.460180516,4602596.01350818,3.61589101048158,4.90658382516436 572 | 307479.460180516,4602596.01350818,3.52437245720787,4.88876658581026 573 | 307504.460180516,4602596.01350818,3.5796156208682,4.84358392873658 574 | 307529.460180516,4602596.01350818,3.86142209868982,4.79767183508655 575 | 307554.460180516,4602596.01350818,3.72870410091345,4.74107480357522 576 | 307579.460180516,4602596.01350818,3.52906309381616,4.69196973607661 577 | 307604.460180516,4602596.01350818,3.48683885940007,4.68276725709193 578 | 307629.460180516,4602596.01350818,3.46848113872886,4.67370325304356 579 | 307654.460180516,4602596.01350818,3.53058561235731,4.69079723944937 580 | 307679.460180516,4602596.01350818,3.75350681230228,4.76243533042494 581 | 307704.460180516,4602596.01350818,3.81409602019137,4.78374551484425 582 | 307729.460180516,4602596.01350818,3.79313895605162,4.77814794770259 583 | 307754.460180516,4602596.01350818,3.75896755899833,4.77005197186732 584 | 307779.460180516,4602596.01350818,3.73846474613557,4.76454944314563 585 | 306329.460180516,4602621.01350818,3.88478319659922,4.86767442911685 586 | 306354.460180516,4602621.01350818,3.91629856696308,4.87943057040601 587 | 306379.460180516,4602621.01350818,4.08691601112181,4.93825386322267 588 | 306404.460180516,4602621.01350818,4.1158475623233,4.92284038892254 589 | 306429.460180516,4602621.01350818,4.00570819765863,4.86769748339474 590 | 306454.460180516,4602621.01350818,3.96866357669125,4.84885650226251 591 | 306479.460180516,4602621.01350818,3.73474388659416,4.79428786946568 592 | 306504.460180516,4602621.01350818,3.46906223483132,4.72475929129321 593 | 306529.460180516,4602621.01350818,3.29891408474183,4.67641620605382 594 | 306554.460180516,4602621.01350818,3.31315700601826,4.68198064934063 595 | 306579.460180516,4602621.01350818,3.65041544793923,4.77139017755912 596 | 306604.460180516,4602621.01350818,4.19200020436976,4.91290404724968 597 | 306629.460180516,4602621.01350818,4.36993727130624,4.97003609346137 598 | 306654.460180516,4602621.01350818,4.29448436030683,4.96827977811411 599 | 306679.460180516,4602621.01350818,4.09151644254128,4.93303181790436 600 | 306704.460180516,4602621.01350818,3.9269957423793,4.90614561813417 601 | 306729.460180516,4602621.01350818,3.83732332871952,4.8699358304333 602 | 306754.460180516,4602621.01350818,3.72969569883327,4.8333996423354 603 | 306779.460180516,4602621.01350818,3.71054915233408,4.82891052964685 604 | 306804.460180516,4602621.01350818,3.36361420250376,4.76860491013791 605 | 306829.460180516,4602621.01350818,3.08856287626418,4.71247786969375 606 | 306854.460180516,4602621.01350818,3.0897782901113,4.7150313545673 607 | 306879.460180516,4602621.01350818,3.11897033008275,4.71904693764106 608 | 306904.460180516,4602621.01350818,2.99192194451341,4.70488461137544 609 | 306929.460180516,4602621.01350818,3.06030521381099,4.71479038451566 610 | 306954.460180516,4602621.01350818,3.32110604438872,4.80687901022602 611 | 306979.460180516,4602621.01350818,3.54935928319907,4.89715789650613 612 | 307004.460180516,4602621.01350818,3.75432152378896,4.99007646910052 613 | 307029.460180516,4602621.01350818,4.06246479724062,5.1076314237101 614 | 307054.460180516,4602621.01350818,4.14131518291137,5.12979409831718 615 | 307079.460180516,4602621.01350818,4.19296513378344,5.13901083825893 616 | 307104.460180516,4602621.01350818,4.12034414542002,5.11180423175826 617 | 307129.460180516,4602621.01350818,3.97157490152232,5.06544898645502 618 | 307154.460180516,4602621.01350818,3.81834704060405,5.01729755299168 619 | 307179.460180516,4602621.01350818,3.75527619390522,5.00283696122591 620 | 307204.460180516,4602621.01350818,4.10920853276586,5.11517671023982 621 | 307229.460180516,4602621.01350818,4.3839926111006,5.19143779955356 622 | 307254.460180516,4602621.01350818,4.3562833326005,5.15679476677525 623 | 307279.460180516,4602621.01350818,4.29880284346752,5.10917499128085 624 | 307304.460180516,4602621.01350818,4.17910033038041,5.06207164279005 625 | 307329.460180516,4602621.01350818,3.9853502474101,5.00571301233898 626 | 307354.460180516,4602621.01350818,3.72720683055943,4.93623545000778 627 | 307379.460180516,4602621.01350818,3.91289631976062,4.96666538275865 628 | 307404.460180516,4602621.01350818,3.9269266336153,4.96497796332158 629 | 307429.460180516,4602621.01350818,3.77773893100898,4.93590391079203 630 | 307454.460180516,4602621.01350818,3.60953641586148,4.89926436836338 631 | 307479.460180516,4602621.01350818,3.40264573031117,4.86551664176614 632 | 307504.460180516,4602621.01350818,3.30409494196465,4.82749185137643 633 | 307529.460180516,4602621.01350818,3.89974692151985,4.85433172498695 634 | 307554.460180516,4602621.01350818,3.97282328097991,4.82524447303451 635 | 307579.460180516,4602621.01350818,3.67527619863233,4.75314316569828 636 | 307604.460180516,4602621.01350818,3.51856871420909,4.69973392125689 637 | 307629.460180516,4602621.01350818,3.46732795590728,4.67980445074404 638 | 307654.460180516,4602621.01350818,3.47575065246345,4.69054092268651 639 | 307679.460180516,4602621.01350818,3.70124556631486,4.75710292213667 640 | 307704.460180516,4602621.01350818,3.78301479618207,4.7824648566757 641 | 306254.460180516,4602646.01350818,3.95183964312892,4.85855343670178 642 | 306279.460180516,4602646.01350818,3.90612491761469,4.84634849633866 643 | 306304.460180516,4602646.01350818,3.84547095605225,4.83349935496821 644 | 306329.460180516,4602646.01350818,3.73694181144382,4.81100280864307 645 | 306354.460180516,4602646.01350818,3.74530696964712,4.81765089528608 646 | 306379.460180516,4602646.01350818,3.97692960592697,4.87416660031089 647 | 306404.460180516,4602646.01350818,4.04497382695754,4.88188124411753 648 | 306429.460180516,4602646.01350818,3.87743026852052,4.82564505624071 649 | 306454.460180516,4602646.01350818,3.81569805924696,4.8034611454496 650 | 306479.460180516,4602646.01350818,3.71774797538482,4.78126348003341 651 | 306504.460180516,4602646.01350818,3.573427157885,4.73795805885686 652 | 306529.460180516,4602646.01350818,3.38650749010722,4.69070622212373 653 | 306554.460180516,4602646.01350818,3.38028571891736,4.68231218436234 654 | 306579.460180516,4602646.01350818,3.54017506008055,4.73247399330118 655 | 306604.460180516,4602646.01350818,3.99071500106269,4.84905922974542 656 | 306629.460180516,4602646.01350818,4.19385194510116,4.9117236652944 657 | 306654.460180516,4602646.01350818,4.11060302435982,4.9000610245852 658 | 306679.460180516,4602646.01350818,4.01221294300743,4.8970050744892 659 | 306704.460180516,4602646.01350818,3.87881490780275,4.87771943405978 660 | 306729.460180516,4602646.01350818,3.67999701234318,4.83924507259017 661 | 306754.460180516,4602646.01350818,3.40123798495427,4.77335428563934 662 | 306779.460180516,4602646.01350818,3.27470416883011,4.76424450242302 663 | 306804.460180516,4602646.01350818,3.02731293780922,4.72893141399577 664 | 306829.460180516,4602646.01350818,2.99730477194897,4.70720886010443 665 | 306854.460180516,4602646.01350818,3.12408844888463,4.71914550902327 666 | 306879.460180516,4602646.01350818,3.28424740683146,4.74242240342147 667 | 306904.460180516,4602646.01350818,3.17219156527778,4.73532918076443 668 | 306929.460180516,4602646.01350818,3.16505931682839,4.74415982109639 669 | 306954.460180516,4602646.01350818,3.40561433762105,4.8288867187558 670 | 306979.460180516,4602646.01350818,3.62250401487779,4.92990455907012 671 | 307004.460180516,4602646.01350818,3.92824623380451,5.03635155046956 672 | 307029.460180516,4602646.01350818,4.07704815828921,5.11108138904266 673 | 307054.460180516,4602646.01350818,4.21836837919826,5.15684604826704 674 | 307079.460180516,4602646.01350818,4.37782720149575,5.18291295563204 675 | 307104.460180516,4602646.01350818,4.23809487641866,5.14046584425235 676 | 307129.460180516,4602646.01350818,4.20026799264162,5.13084587868583 677 | 307154.460180516,4602646.01350818,3.87023437026912,5.0386941950416 678 | 307179.460180516,4602646.01350818,3.68102665978547,4.98468273437284 679 | 307204.460180516,4602646.01350818,3.92836007723339,5.05525279706553 680 | 307229.460180516,4602646.01350818,4.3124453474763,5.15870251514697 681 | 307254.460180516,4602646.01350818,4.32228536278031,5.14437126969758 682 | 307279.460180516,4602646.01350818,4.25048917899016,5.09869326150731 683 | 307304.460180516,4602646.01350818,4.20642585233611,5.06463366900684 684 | 307329.460180516,4602646.01350818,4.28732938759886,5.08151175465305 685 | 307354.460180516,4602646.01350818,3.97458261444785,4.99214446640197 686 | 307379.460180516,4602646.01350818,3.95591765934841,4.97826137787531 687 | 307404.460180516,4602646.01350818,4.10189332275292,5.01240561634171 688 | 307429.460180516,4602646.01350818,3.97293602820269,4.99057946251797 689 | 307454.460180516,4602646.01350818,3.76444795554967,4.93482423078318 690 | 307479.460180516,4602646.01350818,3.59645109463558,4.89657780080266 691 | 307504.460180516,4602646.01350818,3.56522224383077,4.87939500944118 692 | 307529.460180516,4602646.01350818,3.90448880672563,4.89019459161292 693 | 307554.460180516,4602646.01350818,4.23334304237178,4.91457507577308 694 | 307579.460180516,4602646.01350818,4.23673626127576,4.92199725342456 695 | 307604.460180516,4602646.01350818,3.84459186917191,4.79700024765247 696 | 307629.460180516,4602646.01350818,3.67612702154991,4.74564352933796 697 | 306179.460180516,4602671.01350818,3.94673261719103,4.8562301057852 698 | 306204.460180516,4602671.01350818,3.91478318852792,4.84826634971606 699 | 306229.460180516,4602671.01350818,3.90827391584652,4.84078268999588 700 | 306254.460180516,4602671.01350818,3.97493348082454,4.85308582051167 701 | 306279.460180516,4602671.01350818,3.96324993580789,4.85168648525903 702 | 306304.460180516,4602671.01350818,3.80428942899767,4.8077887948531 703 | 306329.460180516,4602671.01350818,3.61093058110277,4.76279247105936 704 | 306354.460180516,4602671.01350818,3.53502192966721,4.7507467928931 705 | 306379.460180516,4602671.01350818,3.96830216833622,4.84213830714097 706 | 306404.460180516,4602671.01350818,3.96521359871855,4.83473508862642 707 | 306429.460180516,4602671.01350818,3.70429895545947,4.76723437381077 708 | 306454.460180516,4602671.01350818,3.72005845757522,4.76903922799064 709 | 306479.460180516,4602671.01350818,3.79096425862979,4.79069250044257 710 | 306504.460180516,4602671.01350818,3.66811495089696,4.7680421392336 711 | 306529.460180516,4602671.01350818,3.558888045579,4.73146580329843 712 | 306554.460180516,4602671.01350818,3.50587236897179,4.70921534442817 713 | 306579.460180516,4602671.01350818,3.64444551415403,4.739956490045 714 | 306604.460180516,4602671.01350818,3.89022783048691,4.80524032691159 715 | 306629.460180516,4602671.01350818,4.11617301098902,4.86757536646845 716 | 306654.460180516,4602671.01350818,4.0338894103584,4.85535858661562 717 | 306679.460180516,4602671.01350818,3.94596844943271,4.85125898094278 718 | 306704.460180516,4602671.01350818,3.84175189572857,4.85202707234402 719 | 306729.460180516,4602671.01350818,3.68344212166204,4.83331330542272 720 | 306754.460180516,4602671.01350818,3.47407873727764,4.77382644322048 721 | 306779.460180516,4602671.01350818,3.27920841218662,4.75692799399505 722 | 306804.460180516,4602671.01350818,3.05673440415071,4.7305327403597 723 | 306829.460180516,4602671.01350818,3.02375332864707,4.7160402074659 724 | 306854.460180516,4602671.01350818,3.09070182363818,4.72933816629197 725 | 306879.460180516,4602671.01350818,3.40105692111584,4.79180209806676 726 | 306904.460180516,4602671.01350818,3.42872649224486,4.79399784334531 727 | 306929.460180516,4602671.01350818,3.51478813672398,4.80293480071033 728 | 306954.460180516,4602671.01350818,3.55185475004533,4.87457961125589 729 | 306979.460180516,4602671.01350818,3.73730994256295,4.96727393764824 730 | 307004.460180516,4602671.01350818,3.93328967893378,5.05190726577033 731 | 307029.460180516,4602671.01350818,4.00147981309068,5.08755384481423 732 | 307054.460180516,4602671.01350818,4.07160139522407,5.1097828165276 733 | 307079.460180516,4602671.01350818,4.102872119084,5.10795373126145 734 | 307104.460180516,4602671.01350818,4.04485247426485,5.08751575776932 735 | 307129.460180516,4602671.01350818,4.08389604366689,5.08818648107547 736 | 307154.460180516,4602671.01350818,3.89704596282689,5.03875943614785 737 | 307179.460180516,4602671.01350818,3.69821770685591,4.98440546090647 738 | 307204.460180516,4602671.01350818,3.82167688742503,5.01950426473058 739 | 307229.460180516,4602671.01350818,4.1691894343769,5.1168009461019 740 | 307254.460180516,4602671.01350818,4.34929812482573,5.1590148502406 741 | 307279.460180516,4602671.01350818,4.26812412588012,5.11320802623172 742 | 307304.460180516,4602671.01350818,4.27488498700205,5.09136902152564 743 | 307329.460180516,4602671.01350818,4.38789416087635,5.11687539147776 744 | 307354.460180516,4602671.01350818,4.21321782283164,5.0664411307275 745 | 307379.460180516,4602671.01350818,4.19059931490369,5.05507415407499 746 | 307404.460180516,4602671.01350818,4.38180876455092,5.11422162704764 747 | 307429.460180516,4602671.01350818,4.19656790328086,5.0572439177281 748 | 307454.460180516,4602671.01350818,4.05971798985305,5.0047976916899 749 | 307479.460180516,4602671.01350818,3.87158792088061,4.94588077457573 750 | 307504.460180516,4602671.01350818,3.587757332391,4.89042168931285 751 | 307529.460180516,4602671.01350818,3.85342440839533,4.91186149499409 752 | 307554.460180516,4602671.01350818,4.1164370013206,4.92205584234502 753 | 306104.460180516,4602696.01350818,4.11894004207483,4.93230362992925 754 | 306129.460180516,4602696.01350818,4.00172887668691,4.88429495811248 755 | 306154.460180516,4602696.01350818,3.97224271349303,4.86967868954761 756 | 306179.460180516,4602696.01350818,3.98044640895497,4.85706932703829 757 | 306204.460180516,4602696.01350818,3.91590312557947,4.84409208634339 758 | 306229.460180516,4602696.01350818,3.91565194698683,4.82703638854889 759 | 306254.460180516,4602696.01350818,3.96383455114614,4.83653048422536 760 | 306279.460180516,4602696.01350818,3.91954142047623,4.83117539063096 761 | 306304.460180516,4602696.01350818,3.65291864872857,4.76523374884004 762 | 306329.460180516,4602696.01350818,3.5811363648735,4.7484824916636 763 | 306354.460180516,4602696.01350818,3.58553504781613,4.75274582151515 764 | 306379.460180516,4602696.01350818,3.80198882036423,4.79361135470914 765 | 306404.460180516,4602696.01350818,3.87615257968418,4.79742145921417 766 | 306429.460180516,4602696.01350818,3.65620226134973,4.7448334716891 767 | 306454.460180516,4602696.01350818,3.6655753892918,4.74712012870843 768 | 306479.460180516,4602696.01350818,3.8200217348301,4.78749525429686 769 | 306504.460180516,4602696.01350818,3.7299890110476,4.78400902019491 770 | 306529.460180516,4602696.01350818,3.50969071714599,4.73337607281766 771 | 306554.460180516,4602696.01350818,3.42674160807896,4.69892829883818 772 | 306579.460180516,4602696.01350818,3.55230360458076,4.71694118855641 773 | 306604.460180516,4602696.01350818,3.74547628587696,4.76259536664159 774 | 306629.460180516,4602696.01350818,3.97530819649441,4.82082202056292 775 | 306654.460180516,4602696.01350818,3.97755034567963,4.82714065489194 776 | 306679.460180516,4602696.01350818,3.89058481831758,4.81773300338764 777 | 306704.460180516,4602696.01350818,3.77579193207207,4.82330274643803 778 | 306729.460180516,4602696.01350818,3.68512348355576,4.82992521311284 779 | 306754.460180516,4602696.01350818,3.70450357406827,4.81667833837002 780 | 306779.460180516,4602696.01350818,3.55752202070233,4.79250359429046 781 | 306804.460180516,4602696.01350818,3.45898602565577,4.78389325998845 782 | 306829.460180516,4602696.01350818,3.36604077755377,4.77170996831037 783 | 306854.460180516,4602696.01350818,3.30901363351505,4.77195809180438 784 | 306879.460180516,4602696.01350818,3.45844168195984,4.81646833273508 785 | 306904.460180516,4602696.01350818,3.52219225714191,4.82256722971485 786 | 306929.460180516,4602696.01350818,3.39038063504157,4.80189762425178 787 | 306954.460180516,4602696.01350818,3.48437310541473,4.87358840345442 788 | 306979.460180516,4602696.01350818,3.7208832053622,4.97990569796211 789 | 307004.460180516,4602696.01350818,3.81412751596051,5.02457855827 790 | 307029.460180516,4602696.01350818,3.90380091672785,5.0535138931241 791 | 307054.460180516,4602696.01350818,4.00744105146559,5.08043377807642 792 | 307079.460180516,4602696.01350818,3.99565403762916,5.0693766538927 793 | 307104.460180516,4602696.01350818,4.00286766291779,5.06372741939727 794 | 307129.460180516,4602696.01350818,4.07713464506025,5.06886006763378 795 | 307154.460180516,4602696.01350818,4.00266140911099,5.04850956277784 796 | 307179.460180516,4602696.01350818,3.6099076169076,4.97089739453704 797 | 307204.460180516,4602696.01350818,3.68254696435457,4.98661380298402 798 | 307229.460180516,4602696.01350818,4.02868353976609,5.08875674441159 799 | 307254.460180516,4602696.01350818,4.3201760365194,5.16598253183309 800 | 307279.460180516,4602696.01350818,4.33027239103516,5.15134027890327 801 | 307304.460180516,4602696.01350818,4.31833228906797,5.1193541265077 802 | 307329.460180516,4602696.01350818,4.32474629161394,5.11381923235583 803 | 307354.460180516,4602696.01350818,4.2803431064098,5.10899120271143 804 | 307379.460180516,4602696.01350818,4.44565666627209,5.16108310679528 805 | 307404.460180516,4602696.01350818,4.39444631501878,5.13527775017224 806 | 307429.460180516,4602696.01350818,4.27455804000927,5.08868651559422 807 | 307454.460180516,4602696.01350818,4.15608446467269,5.04162850632955 808 | 307479.460180516,4602696.01350818,4.01004155474224,4.9797149291313 809 | 306029.460180516,4602721.01350818,4.14279537865028,5.02275105307072 810 | 306054.460180516,4602721.01350818,4.25154725993592,5.02205273361384 811 | 306079.460180516,4602721.01350818,4.26773208791171,4.98667021028185 812 | 306104.460180516,4602721.01350818,4.1005494817714,4.91875456498148 813 | 306129.460180516,4602721.01350818,3.92941642862513,4.87069099477098 814 | 306154.460180516,4602721.01350818,3.95090824660079,4.865972430081 815 | 306179.460180516,4602721.01350818,3.97743789716649,4.86253788618222 816 | 306204.460180516,4602721.01350818,3.95595515885057,4.84891824159046 817 | 306229.460180516,4602721.01350818,3.89106859094796,4.82266491200281 818 | 306254.460180516,4602721.01350818,3.86152571269349,4.81607710640941 819 | 306279.460180516,4602721.01350818,3.83187836365429,4.81241052621789 820 | 306304.460180516,4602721.01350818,3.70768397824136,4.77929317546276 821 | 306329.460180516,4602721.01350818,3.66878504995607,4.76516078138875 822 | 306354.460180516,4602721.01350818,3.62744691026009,4.75205481033368 823 | 306379.460180516,4602721.01350818,3.67116338920825,4.75639058469678 824 | 306404.460180516,4602721.01350818,3.73548723314057,4.76385335604427 825 | 306429.460180516,4602721.01350818,3.68439835866004,4.74594851085107 826 | 306454.460180516,4602721.01350818,3.67468519150977,4.73708396323685 827 | 306479.460180516,4602721.01350818,3.78958751842892,4.76893404223003 828 | 306504.460180516,4602721.01350818,3.63523071390807,4.75692278453141 829 | 306529.460180516,4602721.01350818,3.27481657710704,4.68867691936886 830 | 306554.460180516,4602721.01350818,3.50250031283667,4.71129881359579 831 | 306579.460180516,4602721.01350818,3.59151359949526,4.71963096817521 832 | 306604.460180516,4602721.01350818,3.64237555984426,4.73104021361572 833 | 306629.460180516,4602721.01350818,3.78868828916024,4.7781958535669 834 | 306654.460180516,4602721.01350818,3.86142423674868,4.80551208722843 835 | 306679.460180516,4602721.01350818,3.71070385483601,4.77623865417108 836 | 306704.460180516,4602721.01350818,3.6819918494077,4.79407627087086 837 | 306729.460180516,4602721.01350818,3.63806109122757,4.81319705969092 838 | 306754.460180516,4602721.01350818,3.59829631259815,4.81235223669715 839 | 306779.460180516,4602721.01350818,3.49973638670794,4.78992522415586 840 | 306804.460180516,4602721.01350818,3.60662406615874,4.81495645723895 841 | 306829.460180516,4602721.01350818,3.67330711265768,4.83716148528309 842 | 306854.460180516,4602721.01350818,3.53306220562402,4.82544959289617 843 | 306879.460180516,4602721.01350818,3.59962054936839,4.82951941331711 844 | 306904.460180516,4602721.01350818,3.53511972199968,4.80907360446591 845 | 306929.460180516,4602721.01350818,3.31374283616044,4.77479590998195 846 | 306954.460180516,4602721.01350818,3.41116461742019,4.83075092479653 847 | 306979.460180516,4602721.01350818,3.60029756239287,4.93977353370578 848 | 307004.460180516,4602721.01350818,3.65777899409711,4.98229110111885 849 | 307029.460180516,4602721.01350818,3.7720332244161,5.0125616488869 850 | 307054.460180516,4602721.01350818,3.91832281747001,5.04324603541256 851 | 307079.460180516,4602721.01350818,3.97058912723978,5.05191425625632 852 | 307104.460180516,4602721.01350818,4.06560002248273,5.06993497813508 853 | 307129.460180516,4602721.01350818,4.12200935734414,5.07491831930794 854 | 307154.460180516,4602721.01350818,3.97724105860462,5.03540109182598 855 | 307179.460180516,4602721.01350818,3.58123460646781,4.96016070558195 856 | 307204.460180516,4602721.01350818,3.54950787141838,4.96080830712173 857 | 307229.460180516,4602721.01350818,3.8661917190254,5.06154976718708 858 | 307254.460180516,4602721.01350818,4.31494405288657,5.18871799362374 859 | 307279.460180516,4602721.01350818,4.36470218706287,5.17366798026999 860 | 307304.460180516,4602721.01350818,4.30040891853044,5.12431262489389 861 | 307329.460180516,4602721.01350818,4.34589928004582,5.12065335592047 862 | 307354.460180516,4602721.01350818,4.37805678395133,5.14058843239305 863 | 307379.460180516,4602721.01350818,4.47011785582823,5.17785039174151 864 | 307404.460180516,4602721.01350818,4.42354044812084,5.15686304465954 865 | 307429.460180516,4602721.01350818,4.25060947945732,5.09335372132648 866 | 305954.460180516,4602746.01350818,3.92375381894069,4.91042090573251 867 | 305979.460180516,4602746.01350818,3.8136373350281,4.9003304803728 868 | 306004.460180516,4602746.01350818,3.84135786994575,4.94202517514778 869 | 306029.460180516,4602746.01350818,4.22518342375386,5.06274164318081 870 | 306054.460180516,4602746.01350818,4.37902833506965,5.06759790933867 871 | 306079.460180516,4602746.01350818,4.26892496107697,4.98163357875661 872 | 306104.460180516,4602746.01350818,4.04103562572687,4.88848897671386 873 | 306129.460180516,4602746.01350818,3.99758774311867,4.882010413098 874 | 306154.460180516,4602746.01350818,3.9997818390045,4.8832616691724 875 | 306179.460180516,4602746.01350818,3.9624769221143,4.86235899269834 876 | 306204.460180516,4602746.01350818,3.87863649327154,4.8261196200923 877 | 306229.460180516,4602746.01350818,3.83582652641114,4.81375667138539 878 | 306254.460180516,4602746.01350818,3.8258461468238,4.81701260330304 879 | 306279.460180516,4602746.01350818,3.87781314460217,4.82381040626038 880 | 306304.460180516,4602746.01350818,3.85245127611302,4.82113630721273 881 | 306329.460180516,4602746.01350818,3.79200449820547,4.80739414845565 882 | 306354.460180516,4602746.01350818,3.75303019196899,4.78834809769697 883 | 306379.460180516,4602746.01350818,3.7061218010715,4.75426718777154 884 | 306404.460180516,4602746.01350818,3.78522764788379,4.78454334949849 885 | 306429.460180516,4602746.01350818,3.73683544758447,4.75990525360428 886 | 306454.460180516,4602746.01350818,3.68078282711417,4.73720042488263 887 | 306479.460180516,4602746.01350818,3.74233201294227,4.75606954870396 888 | 306504.460180516,4602746.01350818,3.69571398481908,4.75789840380552 889 | 306529.460180516,4602746.01350818,3.34641143898872,4.69036902763798 890 | 306554.460180516,4602746.01350818,3.49832271669524,4.70802282517507 891 | 306579.460180516,4602746.01350818,3.64120658240827,4.72734016422894 892 | 306604.460180516,4602746.01350818,3.57203470549697,4.71642686934189 893 | 306629.460180516,4602746.01350818,3.77271627172434,4.78320852599949 894 | 306654.460180516,4602746.01350818,4.00933044978921,4.86037319027442 895 | 306679.460180516,4602746.01350818,3.80528900762324,4.80694831210752 896 | 306704.460180516,4602746.01350818,3.64637179838676,4.78279848357779 897 | 306729.460180516,4602746.01350818,3.53396184260767,4.79135519781524 898 | 306754.460180516,4602746.01350818,3.29334893852455,4.77174086327472 899 | 306779.460180516,4602746.01350818,3.19541778014023,4.7476510480396 900 | 306804.460180516,4602746.01350818,3.42376280178605,4.81007937122646 901 | 306829.460180516,4602746.01350818,3.73022513491675,4.8893256448661 902 | 306854.460180516,4602746.01350818,3.68301813768725,4.86717150447441 903 | 306879.460180516,4602746.01350818,3.48339861785787,4.80716505752974 904 | 306904.460180516,4602746.01350818,3.2764739884445,4.75435629164251 905 | 306929.460180516,4602746.01350818,3.31277505138276,4.75325714092294 906 | 306954.460180516,4602746.01350818,3.356063213653,4.78513102155507 907 | 306979.460180516,4602746.01350818,3.48363475316639,4.8928815337355 908 | 307004.460180516,4602746.01350818,3.59585865968912,4.95227039525383 909 | 307029.460180516,4602746.01350818,3.63749206634996,4.97496761339377 910 | 307054.460180516,4602746.01350818,3.71600920609502,4.99225398035155 911 | 307079.460180516,4602746.01350818,3.82616069378522,5.01889402851508 912 | 307104.460180516,4602746.01350818,3.99894205051885,5.05990910019466 913 | 307129.460180516,4602746.01350818,4.11110528436217,5.08827754817738 914 | 307154.460180516,4602746.01350818,4.04530590884315,5.05531379231818 915 | 307179.460180516,4602746.01350818,3.71713207614406,4.98725429219216 916 | 307204.460180516,4602746.01350818,3.63060705933166,4.98527776063264 917 | 307229.460180516,4602746.01350818,3.83811880878964,5.05914156922677 918 | 307254.460180516,4602746.01350818,4.1424798824265,5.13948125697699 919 | 307279.460180516,4602746.01350818,4.26646858027683,5.14959792847503 920 | 307304.460180516,4602746.01350818,4.26661410097898,5.11959846421637 921 | 307329.460180516,4602746.01350818,4.33999528212475,5.13471812639119 922 | 307354.460180516,4602746.01350818,4.37796975972768,5.13972337536491 923 | 305879.460180516,4602771.01350818,3.89661920362692,4.85374211987824 924 | 305904.460180516,4602771.01350818,3.91941333524244,4.86883438906167 925 | 305929.460180516,4602771.01350818,3.98075321872204,4.89763449738009 926 | 305954.460180516,4602771.01350818,3.96984002616664,4.90561734212596 927 | 305979.460180516,4602771.01350818,3.85732879119947,4.87081159335809 928 | 306004.460180516,4602771.01350818,3.91337668865626,4.89504078514156 929 | 306029.460180516,4602771.01350818,4.21584586746072,5.0127621593316 930 | 306054.460180516,4602771.01350818,4.49086007772483,5.10134706332367 931 | 306079.460180516,4602771.01350818,4.35256510314876,5.02415429577213 932 | 306104.460180516,4602771.01350818,4.1581930638295,4.93429048045316 933 | 306129.460180516,4602771.01350818,4.10071380547898,4.9227287430261 934 | 306154.460180516,4602771.01350818,4.02417785178122,4.90244038792883 935 | 306179.460180516,4602771.01350818,3.92959622147293,4.85493678177539 936 | 306204.460180516,4602771.01350818,3.78114429226895,4.80031029501875 937 | 306229.460180516,4602771.01350818,3.83875917020583,4.81837090969399 938 | 306254.460180516,4602771.01350818,3.99667311099464,4.87061268466725 939 | 306279.460180516,4602771.01350818,4.03757993428406,4.89264249084957 940 | 306304.460180516,4602771.01350818,4.01539184346027,4.89331344841971 941 | 306329.460180516,4602771.01350818,4.04792604232379,4.91022633486883 942 | 306354.460180516,4602771.01350818,3.85558522942433,4.82887776857584 943 | 306379.460180516,4602771.01350818,3.66977014677881,4.76104809921487 944 | 306404.460180516,4602771.01350818,3.72227949486465,4.76304932306383 945 | 306429.460180516,4602771.01350818,3.77359392442847,4.76889488442498 946 | 306454.460180516,4602771.01350818,3.66356923511104,4.74187040678604 947 | 306479.460180516,4602771.01350818,3.67399950591359,4.74754880215641 948 | 306504.460180516,4602771.01350818,3.72205294457836,4.76737020887441 949 | 306529.460180516,4602771.01350818,3.52233414864636,4.73014610386046 950 | 306554.460180516,4602771.01350818,3.57797936607525,4.72667348924892 951 | 306579.460180516,4602771.01350818,3.70256751200135,4.73939174183713 952 | 306604.460180516,4602771.01350818,3.60260691289236,4.72112985749508 953 | 306629.460180516,4602771.01350818,3.78471333057693,4.79369050016156 954 | 306654.460180516,4602771.01350818,4.21203455968273,4.94784281923213 955 | 306679.460180516,4602771.01350818,4.09437167230252,4.91660218959538 956 | 306704.460180516,4602771.01350818,3.74073221952741,4.80680755730935 957 | 306729.460180516,4602771.01350818,3.49536152701928,4.78097959046678 958 | 306754.460180516,4602771.01350818,3.19864956747494,4.75724400122582 959 | 306779.460180516,4602771.01350818,2.98808493714913,4.73261209087431 960 | 306804.460180516,4602771.01350818,3.2537602435727,4.79335040108877 961 | 306829.460180516,4602771.01350818,3.68843548603509,4.87596252542296 962 | 306854.460180516,4602771.01350818,3.4966671357324,4.82155905067433 963 | 306879.460180516,4602771.01350818,3.1183267341271,4.73376420094242 964 | 306904.460180516,4602771.01350818,3.22673014768798,4.73109499096596 965 | 306929.460180516,4602771.01350818,3.35026661252827,4.74728008238556 966 | 306954.460180516,4602771.01350818,3.30632680956234,4.7670032796711 967 | 306979.460180516,4602771.01350818,3.50892411656795,4.86650715618412 968 | 307004.460180516,4602771.01350818,3.66815440149578,4.94930452895738 969 | 307029.460180516,4602771.01350818,3.59825361608827,4.9632511763689 970 | 307054.460180516,4602771.01350818,3.6156120540751,4.97386932942196 971 | 307079.460180516,4602771.01350818,3.69390777958305,4.99683842471649 972 | 307104.460180516,4602771.01350818,3.88488115849355,5.04912355438892 973 | 307129.460180516,4602771.01350818,3.9901518855964,5.07760236701076 974 | 307154.460180516,4602771.01350818,4.14405174187768,5.1119834348974 975 | 307179.460180516,4602771.01350818,4.00457992403837,5.06658421473625 976 | 307204.460180516,4602771.01350818,3.86751799498228,5.05742073223533 977 | 307229.460180516,4602771.01350818,3.95582631989547,5.08093219416587 978 | 307254.460180516,4602771.01350818,4.08985817409813,5.1096231705876 979 | 307279.460180516,4602771.01350818,4.16308380202397,5.11579078250161 980 | 305804.460180516,4602796.01350818,3.88591856395558,4.8526039428069 981 | 305829.460180516,4602796.01350818,3.87240414081051,4.84552478520525 982 | 305854.460180516,4602796.01350818,3.89513882458685,4.84485197881438 983 | 305879.460180516,4602796.01350818,3.98403487976281,4.86527706237845 984 | 305904.460180516,4602796.01350818,4.00804529606655,4.88440094583179 985 | 305929.460180516,4602796.01350818,4.07417712274,4.91282722485511 986 | 305954.460180516,4602796.01350818,4.08389507030701,4.91509383173821 987 | 305979.460180516,4602796.01350818,4.01856727036984,4.88805225736397 988 | 306004.460180516,4602796.01350818,3.96967787323215,4.87668111482722 989 | 306029.460180516,4602796.01350818,4.24586390489733,4.9933482504023 990 | 306054.460180516,4602796.01350818,4.50633593611993,5.08923593402959 991 | 306079.460180516,4602796.01350818,4.42885421318018,5.0717274161077 992 | 306104.460180516,4602796.01350818,4.30066440105264,5.02295329795466 993 | 306129.460180516,4602796.01350818,4.2334843625495,4.99333531631074 994 | 306154.460180516,4602796.01350818,4.09088918178818,4.93078918807507 995 | 306179.460180516,4602796.01350818,3.93583453251825,4.86043469964365 996 | 306204.460180516,4602796.01350818,3.79827567980198,4.80250640562853 997 | 306229.460180516,4602796.01350818,3.8473772998605,4.82152290245343 998 | 306254.460180516,4602796.01350818,4.09352825447121,4.91731503912453 999 | 306279.460180516,4602796.01350818,4.19199172587925,4.96221539157426 1000 | 306304.460180516,4602796.01350818,4.1968185101227,4.96602255688603 1001 | 306329.460180516,4602796.01350818,4.11013473705365,4.92639231069792 1002 | 306354.460180516,4602796.01350818,3.94658416865906,4.85519935537879 1003 | 306379.460180516,4602796.01350818,3.6986318740243,4.76497733519414 1004 | 306404.460180516,4602796.01350818,3.68337686813166,4.74866457869416 1005 | 306429.460180516,4602796.01350818,3.87340828235429,4.79850809109245 1006 | 306454.460180516,4602796.01350818,3.80497580358581,4.78711000896979 1007 | 306479.460180516,4602796.01350818,3.79192217864994,4.78156024882732 1008 | 306504.460180516,4602796.01350818,3.88454425115872,4.80948091118571 1009 | 306529.460180516,4602796.01350818,3.83405192406935,4.79757545942897 1010 | 306554.460180516,4602796.01350818,3.78543631843748,4.78130192659434 1011 | 306579.460180516,4602796.01350818,3.76944783287315,4.77235248035969 1012 | 306604.460180516,4602796.01350818,3.76164357984204,4.76012729171784 1013 | 306629.460180516,4602796.01350818,3.8398650819902,4.79727961910099 1014 | 306654.460180516,4602796.01350818,4.20260339634319,4.95182020342547 1015 | 306679.460180516,4602796.01350818,4.2721721912593,4.99169416185282 1016 | 306704.460180516,4602796.01350818,3.81848524216374,4.8369458363132 1017 | 306729.460180516,4602796.01350818,3.47883829903703,4.77852566014987 1018 | 306754.460180516,4602796.01350818,3.18978881834498,4.75771959673587 1019 | 306779.460180516,4602796.01350818,3.06949036403603,4.75330059267743 1020 | 306804.460180516,4602796.01350818,3.25618675073624,4.79660914820986 1021 | 306829.460180516,4602796.01350818,3.39874299387226,4.81077557902471 1022 | 306854.460180516,4602796.01350818,3.15042299456508,4.75065687831932 1023 | 306879.460180516,4602796.01350818,2.94544626512106,4.70347052286597 1024 | 306904.460180516,4602796.01350818,3.1109827082952,4.71164590668925 1025 | 306929.460180516,4602796.01350818,3.23801067069915,4.72805250420227 1026 | 306954.460180516,4602796.01350818,3.30075433970928,4.75926898216133 1027 | 306979.460180516,4602796.01350818,3.52542128673064,4.84850467275003 1028 | 307004.460180516,4602796.01350818,3.76356626670839,4.9609254404082 1029 | 307029.460180516,4602796.01350818,3.71652696651905,4.98334075838276 1030 | 307054.460180516,4602796.01350818,3.680473154841,4.98811442022584 1031 | 307079.460180516,4602796.01350818,3.79619057494802,5.02330475036696 1032 | 307104.460180516,4602796.01350818,3.90918402606065,5.06766878968356 1033 | 307129.460180516,4602796.01350818,4.04420600732507,5.12285540754222 1034 | 307154.460180516,4602796.01350818,4.26400465864488,5.17854458416306 1035 | 307179.460180516,4602796.01350818,4.1466503138819,5.1290607546804 1036 | 307204.460180516,4602796.01350818,4.03892939492231,5.10905421292514 1037 | 305729.460180516,4602821.01350818,3.99517684707757,4.90858615601592 1038 | 305754.460180516,4602821.01350818,3.95034271746673,4.88682173122819 1039 | 305779.460180516,4602821.01350818,3.90316650973478,4.86506764706664 1040 | 305804.460180516,4602821.01350818,3.84723879381719,4.84559924756875 1041 | 305829.460180516,4602821.01350818,3.77790904737877,4.82196444096367 1042 | 305854.460180516,4602821.01350818,3.80356091535575,4.81879441129492 1043 | 305879.460180516,4602821.01350818,3.94594232462211,4.85637968299787 1044 | 305904.460180516,4602821.01350818,4.12316296555722,4.9134199721126 1045 | 305929.460180516,4602821.01350818,4.19571623364816,4.94313433357432 1046 | 305954.460180516,4602821.01350818,4.26716729003706,4.97264314492065 1047 | 305979.460180516,4602821.01350818,4.2227932561236,4.94550934797224 1048 | 306004.460180516,4602821.01350818,4.19894267273264,4.93684875398628 1049 | 306029.460180516,4602821.01350818,4.31996794287844,5.00002923551495 1050 | 306054.460180516,4602821.01350818,4.58224275181232,5.12857620683108 1051 | 306079.460180516,4602821.01350818,4.69390306564391,5.19274375222265 1052 | 306104.460180516,4602821.01350818,4.57160002442407,5.13596678754704 1053 | 306129.460180516,4602821.01350818,4.43455709468824,5.08292765988252 1054 | 306154.460180516,4602821.01350818,4.22155893862311,4.9857893095614 1055 | 306179.460180516,4602821.01350818,4.03842019270439,4.89504695706389 1056 | 306204.460180516,4602821.01350818,3.88378405326119,4.83376219207168 1057 | 306229.460180516,4602821.01350818,3.86487137040636,4.82367751149251 1058 | 306254.460180516,4602821.01350818,4.11158662835414,4.92001397404162 1059 | 306279.460180516,4602821.01350818,4.26579705582667,4.98573002724824 1060 | 306304.460180516,4602821.01350818,4.18149214457195,4.95266769177594 1061 | 306329.460180516,4602821.01350818,4.12466994816079,4.9213360823289 1062 | 306354.460180516,4602821.01350818,4.04886197150656,4.88099678480872 1063 | 306379.460180516,4602821.01350818,3.79407523228116,4.80126522258342 1064 | 306404.460180516,4602821.01350818,3.59383649868443,4.74063652688023 1065 | 306429.460180516,4602821.01350818,3.91138887485922,4.83429391159702 1066 | 306454.460180516,4602821.01350818,3.96079167496203,4.85226848299638 1067 | 306479.460180516,4602821.01350818,3.97805424601043,4.84981952269985 1068 | 306504.460180516,4602821.01350818,4.01181611190071,4.84958993290809 1069 | 306529.460180516,4602821.01350818,3.90427238264366,4.80973587516944 1070 | 306554.460180516,4602821.01350818,3.72755574439696,4.77448108079595 1071 | 306579.460180516,4602821.01350818,3.88480972555588,4.81385773819197 1072 | 306604.460180516,4602821.01350818,3.86663756442609,4.79844381376531 1073 | 306629.460180516,4602821.01350818,3.6616897641013,4.75890815268664 1074 | 306654.460180516,4602821.01350818,3.96986473632702,4.88021574063897 1075 | 306679.460180516,4602821.01350818,4.25561531739666,4.99349902846987 1076 | 306704.460180516,4602821.01350818,3.91776733930126,4.87583368502064 1077 | 306729.460180516,4602821.01350818,3.52633353623558,4.78381661486171 1078 | 306754.460180516,4602821.01350818,3.25426227502183,4.76010902197474 1079 | 306779.460180516,4602821.01350818,3.19356428598932,4.7762514871006 1080 | 306804.460180516,4602821.01350818,3.52779942292134,4.8441135267703 1081 | 306829.460180516,4602821.01350818,3.23697090351463,4.78331736870424 1082 | 306854.460180516,4602821.01350818,2.90895284805111,4.72853873049228 1083 | 306879.460180516,4602821.01350818,2.94783157638425,4.71183249542198 1084 | 306904.460180516,4602821.01350818,2.99322247452309,4.70451562809791 1085 | 306929.460180516,4602821.01350818,3.26286869820387,4.74344624788359 1086 | 306954.460180516,4602821.01350818,3.52816771969618,4.81126829676151 1087 | 306979.460180516,4602821.01350818,3.80352780111282,4.89655024556021 1088 | 307004.460180516,4602821.01350818,3.83068830419168,4.98105657183035 1089 | 307029.460180516,4602821.01350818,3.77372701761243,5.0013258398334 1090 | 307054.460180516,4602821.01350818,3.70089123139959,4.99925455799529 1091 | 307079.460180516,4602821.01350818,3.8594690256678,5.05610300425883 1092 | 307104.460180516,4602821.01350818,3.96122485143551,5.08757996647908 1093 | 307129.460180516,4602821.01350818,4.05103202083196,5.12353575518076 1094 | 305729.460180516,4602846.01350818,4.04124700258958,4.92802958964002 1095 | 305754.460180516,4602846.01350818,4.01320394755,4.91234790849876 1096 | 305779.460180516,4602846.01350818,3.95551911173995,4.88975394680978 1097 | 305804.460180516,4602846.01350818,3.8600178288521,4.85389800039255 1098 | 305829.460180516,4602846.01350818,3.7373922246494,4.81552316912928 1099 | 305854.460180516,4602846.01350818,3.74914347508202,4.79261368650172 1100 | 305879.460180516,4602846.01350818,3.88755185777613,4.8448932302643 1101 | 305904.460180516,4602846.01350818,4.14851402587619,4.94354800232678 1102 | 305929.460180516,4602846.01350818,4.3345711296776,5.02207164395688 1103 | 305954.460180516,4602846.01350818,4.41107973001123,5.05611227615882 1104 | 305979.460180516,4602846.01350818,4.45760325010392,5.05174045272216 1105 | 306004.460180516,4602846.01350818,4.45707655797784,5.05277543000406 1106 | 306029.460180516,4602846.01350818,4.44383036902952,5.04692118893648 1107 | 306054.460180516,4602846.01350818,4.51808558641815,5.08303667761386 1108 | 306079.460180516,4602846.01350818,4.63530631594939,5.14143838103089 1109 | 306104.460180516,4602846.01350818,4.50426526817695,5.12910648812262 1110 | 306129.460180516,4602846.01350818,4.38747115717309,5.10364932463933 1111 | 306154.460180516,4602846.01350818,4.24095048204834,5.006757737942 1112 | 306179.460180516,4602846.01350818,4.10771316225199,4.92943625083781 1113 | 306204.460180516,4602846.01350818,3.98443543406391,4.8653006970857 1114 | 306229.460180516,4602846.01350818,3.89832215180017,4.82118859881113 1115 | 306254.460180516,4602846.01350818,4.07006586980117,4.89212337635109 1116 | 306279.460180516,4602846.01350818,4.26866699789429,4.96288488368877 1117 | 306304.460180516,4602846.01350818,4.18535046219063,4.94390765537217 1118 | 306329.460180516,4602846.01350818,4.14114942924991,4.9212321378021 1119 | 306354.460180516,4602846.01350818,4.11692584995583,4.90309498907188 1120 | 306379.460180516,4602846.01350818,3.91254895934766,4.8343966014364 1121 | 306404.460180516,4602846.01350818,3.78723204945586,4.79231634130827 1122 | 306429.460180516,4602846.01350818,3.86327421731336,4.82193135122081 1123 | 306454.460180516,4602846.01350818,3.97987430585437,4.86689445008002 1124 | 306479.460180516,4602846.01350818,4.01471443712556,4.88078343582836 1125 | 306504.460180516,4602846.01350818,3.92485554335808,4.84433983059064 1126 | 306529.460180516,4602846.01350818,3.6547828892174,4.75422666916808 1127 | 306554.460180516,4602846.01350818,3.49224880315974,4.72376954258017 1128 | 306579.460180516,4602846.01350818,3.57660944426089,4.74789802177541 1129 | 306604.460180516,4602846.01350818,3.65601513545517,4.75341894893472 1130 | 306629.460180516,4602846.01350818,3.57191410739965,4.73021400599601 1131 | 306654.460180516,4602846.01350818,3.77767353525862,4.80556809419761 1132 | 306679.460180516,4602846.01350818,4.06126907628686,4.91735774358212 1133 | 306704.460180516,4602846.01350818,3.8668818921979,4.86228288226161 1134 | 306729.460180516,4602846.01350818,3.5638111439571,4.7800097047704 1135 | 306754.460180516,4602846.01350818,3.32937932956079,4.76385991092485 1136 | 306779.460180516,4602846.01350818,3.15246824291518,4.76420519444312 1137 | 306804.460180516,4602846.01350818,3.27030805470616,4.78535964525814 1138 | 306829.460180516,4602846.01350818,3.20879819884712,4.77456027268959 1139 | 306854.460180516,4602846.01350818,3.21505207989534,4.77545486270032 1140 | 306879.460180516,4602846.01350818,3.21868712094241,4.77561942595313 1141 | 306904.460180516,4602846.01350818,3.16349421629775,4.76288000370085 1142 | 306929.460180516,4602846.01350818,3.68565188198151,4.86003956485241 1143 | 306954.460180516,4602846.01350818,3.80958954428577,4.89180184931256 1144 | 306979.460180516,4602846.01350818,3.80011031522591,4.91461701046704 1145 | 307004.460180516,4602846.01350818,3.82427962983088,4.97454016469817 1146 | 307029.460180516,4602846.01350818,3.79908606930146,5.00326077758862 1147 | 307054.460180516,4602846.01350818,3.77137650383454,5.00909386027224 1148 | 307079.460180516,4602846.01350818,3.86618531602874,5.05540194369381 1149 | 305754.460180516,4602871.01350818,4.09065790935565,4.94080136731759 1150 | 305779.460180516,4602871.01350818,4.07987019841997,4.9305714710081 1151 | 305804.460180516,4602871.01350818,4.06476288061537,4.91659284244981 1152 | 305829.460180516,4602871.01350818,3.94613904100548,4.86997455353231 1153 | 305854.460180516,4602871.01350818,3.67163276850723,4.78218700822382 1154 | 305879.460180516,4602871.01350818,3.84065733287497,4.84525496353192 1155 | 305904.460180516,4602871.01350818,4.16997318192287,4.97665339002159 1156 | 305929.460180516,4602871.01350818,4.34242673593654,5.07124960924499 1157 | 305954.460180516,4602871.01350818,4.5392998393496,5.14483177398597 1158 | 305979.460180516,4602871.01350818,4.76999434297687,5.23925290132903 1159 | 306004.460180516,4602871.01350818,4.65659705569567,5.16959962018478 1160 | 306029.460180516,4602871.01350818,4.31347236890305,5.00262322927022 1161 | 306054.460180516,4602871.01350818,4.3468312714892,5.0257901731831 1162 | 306079.460180516,4602871.01350818,4.49479827540725,5.10960173726028 1163 | 306104.460180516,4602871.01350818,4.48643849940609,5.15732418497522 1164 | 306129.460180516,4602871.01350818,4.51622820704366,5.15097301882544 1165 | 306154.460180516,4602871.01350818,4.3796956360123,5.04969983872669 1166 | 306179.460180516,4602871.01350818,4.17982437612624,4.95925944849493 1167 | 306204.460180516,4602871.01350818,3.97644935460527,4.87100737875268 1168 | 306229.460180516,4602871.01350818,3.87724754525881,4.82848755398778 1169 | 306254.460180516,4602871.01350818,3.91413281176457,4.84334824995247 1170 | 306279.460180516,4602871.01350818,4.09825353656572,4.90505134831718 1171 | 306304.460180516,4602871.01350818,4.03399319095993,4.89208015605361 1172 | 306329.460180516,4602871.01350818,3.89493066048154,4.86235974126578 1173 | 306354.460180516,4602871.01350818,3.93376752891415,4.86263015573249 1174 | 306379.460180516,4602871.01350818,3.87503096233325,4.82562297397464 1175 | 306404.460180516,4602871.01350818,3.72406181024471,4.77414263865521 1176 | 306429.460180516,4602871.01350818,3.72504595169858,4.777294369941 1177 | 306454.460180516,4602871.01350818,3.97052541685218,4.86342843296083 1178 | 306479.460180516,4602871.01350818,3.97110793274274,4.86768663925883 1179 | 306504.460180516,4602871.01350818,3.82330913055593,4.82543201441463 1180 | 306529.460180516,4602871.01350818,3.68463249655048,4.76516661829805 1181 | 306554.460180516,4602871.01350818,3.4957100600162,4.72018110885227 1182 | 306579.460180516,4602871.01350818,3.44889269703774,4.71824251062743 1183 | 306604.460180516,4602871.01350818,3.44184783714785,4.70890604059705 1184 | 306629.460180516,4602871.01350818,3.48284639597053,4.70259716613603 1185 | 306654.460180516,4602871.01350818,3.71207867250672,4.7622088312709 1186 | 306679.460180516,4602871.01350818,3.97054050060401,4.86336263111735 1187 | 306704.460180516,4602871.01350818,3.97682400615043,4.87159459577878 1188 | 306729.460180516,4602871.01350818,3.75264330810633,4.80175895406867 1189 | 306754.460180516,4602871.01350818,3.42377101358325,4.7664670125699 1190 | 306779.460180516,4602871.01350818,3.1220438720607,4.75154860693821 1191 | 306804.460180516,4602871.01350818,2.99895488992819,4.73554813120748 1192 | 306829.460180516,4602871.01350818,3.24850120333062,4.77079199115417 1193 | 306854.460180516,4602871.01350818,3.55309903324092,4.8348777017873 1194 | 306879.460180516,4602871.01350818,3.69487283829737,4.87223902369111 1195 | 306904.460180516,4602871.01350818,3.6808639399412,4.88814700518849 1196 | 306929.460180516,4602871.01350818,3.71092700076989,4.90787859029269 1197 | 306954.460180516,4602871.01350818,3.78268934826624,4.91753986870035 1198 | 306979.460180516,4602871.01350818,3.79952642744411,4.93818243642897 1199 | 307004.460180516,4602871.01350818,3.7658185296811,4.96024430613593 1200 | 305754.460180516,4602896.01350818,4.2039103179735,4.98455061366845 1201 | 305779.460180516,4602896.01350818,4.18537006586949,4.97014106704779 1202 | 305804.460180516,4602896.01350818,4.09337257913105,4.92551779777334 1203 | 305829.460180516,4602896.01350818,3.90454380306055,4.84972168521103 1204 | 305854.460180516,4602896.01350818,3.8600747620907,4.8312678990404 1205 | 305879.460180516,4602896.01350818,4.09047570646786,4.92337771609493 1206 | 305904.460180516,4602896.01350818,4.25444123778274,4.99685944805656 1207 | 305929.460180516,4602896.01350818,4.44767229418222,5.10700812552672 1208 | 305954.460180516,4602896.01350818,4.54275953646415,5.13550154494953 1209 | 305979.460180516,4602896.01350818,4.64337995121026,5.17279889317241 1210 | 306004.460180516,4602896.01350818,4.49659568103152,5.09981761060268 1211 | 306029.460180516,4602896.01350818,4.10471543892744,4.93733656162052 1212 | 306054.460180516,4602896.01350818,4.15714792556043,4.97023489893466 1213 | 306079.460180516,4602896.01350818,4.47595396837134,5.14275611030967 1214 | 306104.460180516,4602896.01350818,4.74491199082231,5.30563687163836 1215 | 306129.460180516,4602896.01350818,4.79568091974351,5.28693763290814 1216 | 306154.460180516,4602896.01350818,4.5790860231862,5.1489723062029 1217 | 306179.460180516,4602896.01350818,4.17474306576555,4.96918685388942 1218 | 306204.460180516,4602896.01350818,3.92907541215595,4.86295157156732 1219 | 306229.460180516,4602896.01350818,3.87369521035529,4.83142993540547 1220 | 306254.460180516,4602896.01350818,3.92729326738593,4.84659818724553 1221 | 306279.460180516,4602896.01350818,3.95124722030858,4.85109681166658 1222 | 306304.460180516,4602896.01350818,3.89349537636435,4.83683283168177 1223 | 306329.460180516,4602896.01350818,3.77044641215819,4.82995395851836 1224 | 306354.460180516,4602896.01350818,3.75336432999458,4.82584255341662 1225 | 306379.460180516,4602896.01350818,3.77748765005881,4.8036608464538 1226 | 306404.460180516,4602896.01350818,3.76780257343121,4.78695061550055 1227 | 306429.460180516,4602896.01350818,3.79307213878797,4.78813264228169 1228 | 306454.460180516,4602896.01350818,4.03191610157262,4.85167108450587 1229 | 306479.460180516,4602896.01350818,4.04751204834988,4.87037214859787 1230 | 306504.460180516,4602896.01350818,3.8757191835799,4.83600403820485 1231 | 306529.460180516,4602896.01350818,3.63708814413572,4.76002605481631 1232 | 306554.460180516,4602896.01350818,3.47606840892442,4.71220649433969 1233 | 306579.460180516,4602896.01350818,3.52192021248193,4.72375640764733 1234 | 306604.460180516,4602896.01350818,3.22676582445563,4.66878205270867 1235 | 306629.460180516,4602896.01350818,3.35127904150647,4.68238530687283 1236 | 306654.460180516,4602896.01350818,3.6372575819501,4.74389021721735 1237 | 306679.460180516,4602896.01350818,3.87789188905846,4.82499382100323 1238 | 306704.460180516,4602896.01350818,3.9829624161174,4.85897820717857 1239 | 306729.460180516,4602896.01350818,3.79661722264302,4.80856210579637 1240 | 306754.460180516,4602896.01350818,3.531185111819,4.77944764721764 1241 | 306779.460180516,4602896.01350818,3.25304595723108,4.76858546621628 1242 | 306804.460180516,4602896.01350818,3.02810917408209,4.75605386701246 1243 | 306829.460180516,4602896.01350818,3.25174924911727,4.78614852409248 1244 | 306854.460180516,4602896.01350818,3.72805277024981,4.86898250603537 1245 | 306879.460180516,4602896.01350818,3.83133216841736,4.90709782236348 1246 | 306904.460180516,4602896.01350818,3.7765456945909,4.91474145364881 1247 | 306929.460180516,4602896.01350818,3.76998305936568,4.91983004401244 1248 | 305754.460180516,4602921.01350818,4.28373700380151,5.01598116459519 1249 | 305779.460180516,4602921.01350818,4.28215361734995,5.00966530614401 1250 | 305804.460180516,4602921.01350818,4.08376362949606,4.92783214547822 1251 | 305829.460180516,4602921.01350818,3.83616373538655,4.82942256573934 1252 | 305854.460180516,4602921.01350818,3.88323220103088,4.82272030217942 1253 | 305879.460180516,4602921.01350818,4.15047827695952,4.90463786989719 1254 | 305904.460180516,4602921.01350818,4.24007130563715,4.95142904678866 1255 | 305929.460180516,4602921.01350818,4.28981651959463,4.97674586144913 1256 | 305954.460180516,4602921.01350818,4.32154745124412,4.9892917384938 1257 | 305979.460180516,4602921.01350818,4.30670063319994,4.99522587100704 1258 | 306004.460180516,4602921.01350818,4.1132596158224,4.92124290599131 1259 | 306029.460180516,4602921.01350818,4.1434473578656,4.92905790267015 1260 | 306054.460180516,4602921.01350818,4.31146591361862,5.00554289107449 1261 | 306079.460180516,4602921.01350818,4.49183827395382,5.1148113008441 1262 | 306104.460180516,4602921.01350818,4.81554032550977,5.27416996764645 1263 | 306129.460180516,4602921.01350818,4.75492105890377,5.26051691544853 1264 | 306154.460180516,4602921.01350818,4.53928065017439,5.16753527829752 1265 | 306179.460180516,4602921.01350818,4.12192910922726,4.97432377914121 1266 | 306204.460180516,4602921.01350818,3.81101443939366,4.83133682829194 1267 | 306229.460180516,4602921.01350818,3.85841407796065,4.85046346601648 1268 | 306254.460180516,4602921.01350818,3.93952418395594,4.88520644375979 1269 | 306279.460180516,4602921.01350818,3.91678248036369,4.87258997937271 1270 | 306304.460180516,4602921.01350818,3.88849334172374,4.83184115539801 1271 | 306329.460180516,4602921.01350818,3.69347060503551,4.80123650442145 1272 | 306354.460180516,4602921.01350818,3.5753805207649,4.77929755017451 1273 | 306379.460180516,4602921.01350818,3.85381800499847,4.82860501217882 1274 | 306404.460180516,4602921.01350818,3.90223017857526,4.81773840512495 1275 | 306429.460180516,4602921.01350818,3.90544911280148,4.80782083122124 1276 | 306454.460180516,4602921.01350818,4.08455618468276,4.86236620043298 1277 | 306479.460180516,4602921.01350818,4.16370126977562,4.90001792579703 1278 | 306504.460180516,4602921.01350818,3.94398479785368,4.84210377871899 1279 | 306529.460180516,4602921.01350818,3.67590034159034,4.75998179307749 1280 | 306554.460180516,4602921.01350818,3.44571533536934,4.70086862346504 1281 | 306579.460180516,4602921.01350818,3.3144667884882,4.67875067355184 1282 | 306604.460180516,4602921.01350818,3.29201302911996,4.67149353454136 1283 | 306629.460180516,4602921.01350818,3.39998383053792,4.6871652814232 1284 | 306654.460180516,4602921.01350818,3.57603688883365,4.73489703601339 1285 | 306679.460180516,4602921.01350818,3.8308661104464,4.81671712597801 1286 | 306704.460180516,4602921.01350818,4.02657256844313,4.87650485694322 1287 | 306729.460180516,4602921.01350818,3.94194064304552,4.84858192362444 1288 | 306754.460180516,4602921.01350818,3.70560815316362,4.81443633877941 1289 | 306779.460180516,4602921.01350818,3.46393305437524,4.80750906608536 1290 | 306804.460180516,4602921.01350818,3.36225339334656,4.82383357552511 1291 | 306829.460180516,4602921.01350818,3.47496038907153,4.84140868093484 1292 | 306854.460180516,4602921.01350818,3.65296843339416,4.88043268320344 1293 | 305779.460180516,4602946.01350818,4.40368912209203,5.04774106471395 1294 | 305804.460180516,4602946.01350818,4.13869244318689,4.9453014614034 1295 | 305829.460180516,4602946.01350818,3.82063360839744,4.82241730124622 1296 | 305854.460180516,4602946.01350818,3.76867129979022,4.78332726342341 1297 | 305879.460180516,4602946.01350818,3.98626834413238,4.83780356845199 1298 | 305904.460180516,4602946.01350818,4.03984764982585,4.86053477685022 1299 | 305929.460180516,4602946.01350818,4.07832816359173,4.87981167945276 1300 | 305954.460180516,4602946.01350818,4.09141299237139,4.87937251319216 1301 | 305979.460180516,4602946.01350818,4.16931567938321,4.92396510987611 1302 | 306004.460180516,4602946.01350818,4.22258149333849,4.92999525790484 1303 | 306029.460180516,4602946.01350818,4.22469428167758,4.92821392646236 1304 | 306054.460180516,4602946.01350818,4.18012388866613,4.93042918051643 1305 | 306079.460180516,4602946.01350818,4.3147673266274,5.01461682665018 1306 | 306104.460180516,4602946.01350818,4.63430525605642,5.14679515970364 1307 | 306129.460180516,4602946.01350818,4.80483038344775,5.27634831111523 1308 | 306154.460180516,4602946.01350818,4.56851553460303,5.19108968374244 1309 | 306179.460180516,4602946.01350818,4.15363090556082,4.99584171415561 1310 | 306204.460180516,4602946.01350818,3.7880283088706,4.83657802069402 1311 | 306229.460180516,4602946.01350818,3.87740183230183,4.87047966322379 1312 | 306254.460180516,4602946.01350818,3.89605641318183,4.91603460348507 1313 | 306279.460180516,4602946.01350818,3.97274368484,4.93070009425352 1314 | 306304.460180516,4602946.01350818,3.85154268867387,4.85211116007688 1315 | 306329.460180516,4602946.01350818,3.62900043090888,4.7896052708391 1316 | 306354.460180516,4602946.01350818,3.5941500255641,4.791615504167 1317 | 306379.460180516,4602946.01350818,3.87573301243613,4.83457758792933 1318 | 306404.460180516,4602946.01350818,3.93568875410499,4.83087804568934 1319 | 306429.460180516,4602946.01350818,3.91097776338743,4.81447007855888 1320 | 306454.460180516,4602946.01350818,3.99778562874021,4.84074242657256 1321 | 306479.460180516,4602946.01350818,4.11863423417967,4.89478639572348 1322 | 306504.460180516,4602946.01350818,3.99513140268822,4.85011630384331 1323 | 306529.460180516,4602946.01350818,3.79975074577675,4.78967925674693 1324 | 306554.460180516,4602946.01350818,3.48130788403422,4.72494380975717 1325 | 306579.460180516,4602946.01350818,3.28767080171626,4.68398880256434 1326 | 306604.460180516,4602946.01350818,3.37470046457748,4.68952386825408 1327 | 306629.460180516,4602946.01350818,3.4586210167564,4.70086063800242 1328 | 306654.460180516,4602946.01350818,3.66065005385342,4.75803022006231 1329 | 306679.460180516,4602946.01350818,3.92995448097612,4.85019760338441 1330 | 306704.460180516,4602946.01350818,4.0878055799813,4.91906405486932 1331 | 306729.460180516,4602946.01350818,3.97819524674496,4.87976862763549 1332 | 306754.460180516,4602946.01350818,3.78722887414089,4.8523650835479 1333 | 306779.460180516,4602946.01350818,3.63325933723192,4.84340368745165 1334 | 305779.460180516,4602971.01350818,4.24231066165032,4.9987810039816 1335 | 305804.460180516,4602971.01350818,4.05318532030618,4.91858435087623 1336 | 305829.460180516,4602971.01350818,3.89008040665826,4.83691492231139 1337 | 305854.460180516,4602971.01350818,3.78802140429602,4.77837632274031 1338 | 305879.460180516,4602971.01350818,3.8259470340418,4.78035104963933 1339 | 305904.460180516,4602971.01350818,3.82050919880296,4.78599695388134 1340 | 305929.460180516,4602971.01350818,3.95902848252451,4.84739093426854 1341 | 305954.460180516,4602971.01350818,4.10508649846806,4.91611712299693 1342 | 305979.460180516,4602971.01350818,4.30515458908806,4.98227841069055 1343 | 306004.460180516,4602971.01350818,4.30715920436285,4.96180171339216 1344 | 306029.460180516,4602971.01350818,4.25168540543063,4.93838449761081 1345 | 306054.460180516,4602971.01350818,3.99268213695782,4.86578580758837 1346 | 306079.460180516,4602971.01350818,3.98234898633259,4.88744433855063 1347 | 306104.460180516,4602971.01350818,4.13169581804048,4.9446632112308 1348 | 306129.460180516,4602971.01350818,4.35281365634517,5.0476221869116 1349 | 306154.460180516,4602971.01350818,4.38450104456063,5.05631950549762 1350 | 306179.460180516,4602971.01350818,3.89566725574372,4.88884541686759 1351 | 306204.460180516,4602971.01350818,3.83672066054472,4.82635834450316 1352 | 306229.460180516,4602971.01350818,3.80389891663509,4.83690852285087 1353 | 306254.460180516,4602971.01350818,3.9394380597219,4.89628504987966 1354 | 306279.460180516,4602971.01350818,4.00121747842979,4.91177779951314 1355 | 306304.460180516,4602971.01350818,3.68739775176341,4.80449604682468 1356 | 306329.460180516,4602971.01350818,3.56497939966543,4.7657477152278 1357 | 306354.460180516,4602971.01350818,3.81680257042666,4.8553253318705 1358 | 306379.460180516,4602971.01350818,4.02582161816828,4.91192293891757 1359 | 306404.460180516,4602971.01350818,3.98597155508326,4.85464482866915 1360 | 306429.460180516,4602971.01350818,3.97320888844473,4.82692428511856 1361 | 306454.460180516,4602971.01350818,3.97817463809074,4.81053689256417 1362 | 306479.460180516,4602971.01350818,4.01798581523781,4.83192817328383 1363 | 306504.460180516,4602971.01350818,3.97922557452446,4.83627690053035 1364 | 306529.460180516,4602971.01350818,3.92000566122829,4.83506131892861 1365 | 306554.460180516,4602971.01350818,3.6591631241515,4.82493424531703 1366 | 306579.460180516,4602971.01350818,3.31525998296536,4.76430169752632 1367 | 306604.460180516,4602971.01350818,3.31193486055629,4.73100220552656 1368 | 306629.460180516,4602971.01350818,3.48168298168157,4.75285063594134 1369 | 306654.460180516,4602971.01350818,3.64621661968624,4.77217851352874 1370 | 306679.460180516,4602971.01350818,3.85671588225694,4.84264173386603 1371 | 305804.460180516,4602996.01350818,4.09152431216687,4.91840840357097 1372 | 305829.460180516,4602996.01350818,3.9685926199223,4.85074331602504 1373 | 305854.460180516,4602996.01350818,3.89982615892698,4.79843812078936 1374 | 305879.460180516,4602996.01350818,3.77378909695666,4.75596564013722 1375 | 305904.460180516,4602996.01350818,3.61743343490242,4.73643926390718 1376 | 305929.460180516,4602996.01350818,3.86561869918213,4.83806441523019 1377 | 305954.460180516,4602996.01350818,4.28407067953192,4.98871517435661 1378 | 305979.460180516,4602996.01350818,4.49022946135092,5.05137289941894 1379 | 306004.460180516,4602996.01350818,4.24313305014447,4.95195209180795 1380 | 306029.460180516,4602996.01350818,3.97468348194116,4.85324097176274 1381 | 306054.460180516,4602996.01350818,3.89879876064577,4.83431935302166 1382 | 306079.460180516,4602996.01350818,3.80679885999267,4.81295165441593 1383 | 306104.460180516,4602996.01350818,4.01841090536208,4.88238616095182 1384 | 306129.460180516,4602996.01350818,4.25233491556327,4.94519608589141 1385 | 306154.460180516,4602996.01350818,4.28660583389005,4.94926368542343 1386 | 306179.460180516,4602996.01350818,3.92465620624923,4.84766100406996 1387 | 306204.460180516,4602996.01350818,3.65037507015246,4.7683652557006 1388 | 306229.460180516,4602996.01350818,3.51762306845946,4.7469625031761 1389 | 306254.460180516,4602996.01350818,3.61714658470228,4.78192473085452 1390 | 306279.460180516,4602996.01350818,3.65902221271079,4.78228435925086 1391 | 306304.460180516,4602996.01350818,3.60451434936163,4.75567113570792 1392 | 306329.460180516,4602996.01350818,3.60042566954464,4.7526578105253 1393 | 306354.460180516,4602996.01350818,3.8714164281339,4.85301443393198 1394 | 306379.460180516,4602996.01350818,4.0568072748697,4.91495353280628 1395 | 306404.460180516,4602996.01350818,4.05967516642089,4.89077229965567 1396 | 306429.460180516,4602996.01350818,3.96162457542735,4.83249465417161 1397 | 306454.460180516,4602996.01350818,3.91790180019063,4.79811723392921 1398 | 306479.460180516,4602996.01350818,3.94836683238733,4.81259831996322 1399 | 306504.460180516,4602996.01350818,3.99486908265831,4.8507620037608 1400 | 306529.460180516,4602996.01350818,4.03268019680384,4.89844003136044 1401 | 306554.460180516,4602996.01350818,3.97732989882415,4.95112945786955 1402 | 306579.460180516,4602996.01350818,3.7429752973741,4.9193700752353 1403 | 306604.460180516,4602996.01350818,3.54200306271092,4.82927599113789 1404 | 305804.460180516,4603021.01350818,4.07158126386414,4.90126899859255 1405 | 305829.460180516,4603021.01350818,3.9964659257345,4.85338637642907 1406 | 305854.460180516,4603021.01350818,3.90014605806446,4.7955826690539 1407 | 305879.460180516,4603021.01350818,3.75065719941794,4.74822703946152 1408 | 305904.460180516,4603021.01350818,3.54778035220417,4.72828173973305 1409 | 305929.460180516,4603021.01350818,3.70423938045267,4.8137065761867 1410 | 305954.460180516,4603021.01350818,4.02380122917844,4.90388364706712 1411 | 305979.460180516,4603021.01350818,4.15974657124357,4.93665990163239 1412 | 306004.460180516,4603021.01350818,4.03177107893722,4.88869921031737 1413 | 306029.460180516,4603021.01350818,3.9249767437603,4.84011666607592 1414 | 306054.460180516,4603021.01350818,3.88957724989809,4.82953267413812 1415 | 306079.460180516,4603021.01350818,3.90756804836765,4.83199599253725 1416 | 306104.460180516,4603021.01350818,3.96332509593878,4.85012765717105 1417 | 306129.460180516,4603021.01350818,4.01592091757726,4.87161487795718 1418 | 306154.460180516,4603021.01350818,3.92808761384716,4.85319784833468 1419 | 306179.460180516,4603021.01350818,3.8804208675337,4.83179800054044 1420 | 306204.460180516,4603021.01350818,3.60928346093554,4.76189200175969 1421 | 306229.460180516,4603021.01350818,3.26336312104106,4.68931005209782 1422 | 306254.460180516,4603021.01350818,3.3294783040949,4.700807100499 1423 | 306279.460180516,4603021.01350818,3.48503703616589,4.72657911543276 1424 | 306304.460180516,4603021.01350818,3.53503364443512,4.73364927887289 1425 | 306329.460180516,4603021.01350818,3.64545138642058,4.75223636828517 1426 | 306354.460180516,4603021.01350818,3.83610781719273,4.81880302590845 1427 | 306379.460180516,4603021.01350818,3.95926984317572,4.86902159069782 1428 | 306404.460180516,4603021.01350818,3.86602146003754,4.83770092611512 1429 | 306429.460180516,4603021.01350818,3.7575224728404,4.79731978142417 1430 | 306454.460180516,4603021.01350818,3.83190225079823,4.80228067104502 1431 | 306479.460180516,4603021.01350818,3.95057896817053,4.8387771447143 1432 | 306504.460180516,4603021.01350818,4.00683566913255,4.87913474902503 1433 | 306529.460180516,4603021.01350818,4.01588454090087,4.92086904068686 1434 | 305804.460180516,4603046.01350818,4.09047872394368,4.89580007066464 1435 | 305829.460180516,4603046.01350818,4.02782860139069,4.8606978272282 1436 | 305854.460180516,4603046.01350818,3.8942308045462,4.80395809489642 1437 | 305879.460180516,4603046.01350818,3.63174630588061,4.72999795631786 1438 | 305904.460180516,4603046.01350818,3.55698293062478,4.74257461283468 1439 | 305929.460180516,4603046.01350818,3.61481485519101,4.78357965553539 1440 | 305954.460180516,4603046.01350818,3.80763252835682,4.83161634680912 1441 | 305979.460180516,4603046.01350818,3.8292330890089,4.83069830099119 1442 | 306004.460180516,4603046.01350818,3.845889197753,4.82659583744385 1443 | 306029.460180516,4603046.01350818,3.92417344283691,4.84369671390391 1444 | 306054.460180516,4603046.01350818,3.99908148169522,4.86203772971564 1445 | 306079.460180516,4603046.01350818,3.91703256301601,4.8418242673372 1446 | 306104.460180516,4603046.01350818,3.82507851313699,4.82209116730236 1447 | 306129.460180516,4603046.01350818,3.74606027608318,4.80353855764309 1448 | 306154.460180516,4603046.01350818,3.6485586415352,4.7691269667404 1449 | 306179.460180516,4603046.01350818,3.82325291195311,4.82293429065009 1450 | 306204.460180516,4603046.01350818,3.81005363278141,4.82560394281075 1451 | 306229.460180516,4603046.01350818,3.41033339547756,4.73491415155727 1452 | 306254.460180516,4603046.01350818,3.25478556803592,4.68987128921104 1453 | 306279.460180516,4603046.01350818,3.32686236147159,4.69957903187134 1454 | 306304.460180516,4603046.01350818,3.34042658586565,4.70825254525091 1455 | 306329.460180516,4603046.01350818,3.61689579317895,4.74897800079675 1456 | 306354.460180516,4603046.01350818,3.82184011816589,4.79779786477031 1457 | 306379.460180516,4603046.01350818,3.8944176402168,4.85036594371556 1458 | 306404.460180516,4603046.01350818,3.7896660623722,4.82565577246142 1459 | 306429.460180516,4603046.01350818,3.71122098028229,4.7978254206681 1460 | 306454.460180516,4603046.01350818,3.80683213818314,4.81595475072121 1461 | 305829.460180516,4603071.01350818,4.16379450214007,4.90386746892367 1462 | 305854.460180516,4603071.01350818,3.92381763551193,4.82787703875404 1463 | 305879.460180516,4603071.01350818,3.67585024545254,4.75045971489712 1464 | 305904.460180516,4603071.01350818,3.61748723766956,4.74515573797068 1465 | 305929.460180516,4603071.01350818,3.75227299105778,4.79404688120362 1466 | 305954.460180516,4603071.01350818,3.75331659607484,4.80319485451167 1467 | 305979.460180516,4603071.01350818,3.7359748706151,4.79655229231004 1468 | 306004.460180516,4603071.01350818,3.7864899791939,4.80958658193879 1469 | 306029.460180516,4603071.01350818,3.93929006764915,4.8503019757268 1470 | 306054.460180516,4603071.01350818,4.07758619568836,4.89022869226958 1471 | 306079.460180516,4603071.01350818,3.98260441889569,4.87726387314937 1472 | 306104.460180516,4603071.01350818,3.9109076398868,4.86614464871317 1473 | 306129.460180516,4603071.01350818,3.77755473609532,4.82028795601699 1474 | 306154.460180516,4603071.01350818,3.6219446730444,4.76659027079305 1475 | 306179.460180516,4603071.01350818,3.70215560957628,4.79441375394934 1476 | 306204.460180516,4603071.01350818,3.90401258572515,4.85870362496437 1477 | 306229.460180516,4603071.01350818,3.68716241244141,4.80482901027857 1478 | 306254.460180516,4603071.01350818,3.39758450489015,4.7197756551854 1479 | 306279.460180516,4603071.01350818,3.38308753458803,4.7160644671782 1480 | 306304.460180516,4603071.01350818,3.42365259373908,4.73096351127261 1481 | 306329.460180516,4603071.01350818,3.59101623692319,4.75816371140227 1482 | 306354.460180516,4603071.01350818,3.73394803376068,4.79227534077837 1483 | 306379.460180516,4603071.01350818,3.80451015802171,4.82551843106569 1484 | 305829.460180516,4603096.01350818,4.18070237265901,4.92185201771882 1485 | 305854.460180516,4603096.01350818,3.90423901951451,4.83792462920143 1486 | 305879.460180516,4603096.01350818,3.59450548801038,4.74773558520594 1487 | 305904.460180516,4603096.01350818,3.47312814653419,4.71412439348216 1488 | 305929.460180516,4603096.01350818,3.62765767269226,4.76390668167589 1489 | 305954.460180516,4603096.01350818,3.68372618232235,4.77902460240259 1490 | 305979.460180516,4603096.01350818,3.67320389388637,4.77825421983673 1491 | 306004.460180516,4603096.01350818,3.74896397851389,4.79885760979128 1492 | 306029.460180516,4603096.01350818,3.86292024621309,4.83722229923594 1493 | 306054.460180516,4603096.01350818,4.00331159546172,4.88083710639553 1494 | 306079.460180516,4603096.01350818,3.9889198837326,4.88852471075308 1495 | 306104.460180516,4603096.01350818,3.99866670776229,4.90347771253656 1496 | 306129.460180516,4603096.01350818,3.95257843819391,4.88308045031771 1497 | 306154.460180516,4603096.01350818,3.85188615002645,4.83932252652045 1498 | 306179.460180516,4603096.01350818,3.88981236913741,4.84780671117746 1499 | 306204.460180516,4603096.01350818,3.9634765844311,4.86883691018713 1500 | 306229.460180516,4603096.01350818,3.89046019568989,4.84680792925529 1501 | 306254.460180516,4603096.01350818,3.65750442547751,4.77641715619885 1502 | 306279.460180516,4603096.01350818,3.56283983716722,4.75437365052876 1503 | 306304.460180516,4603096.01350818,3.53417721131451,4.75348179590051 1504 | 305829.460180516,4603121.01350818,3.97271981505925,4.87616350951233 1505 | 305854.460180516,4603121.01350818,3.77002446413514,4.81460768505651 1506 | 305879.460180516,4603121.01350818,3.48442008543176,4.73370751902365 1507 | 305904.460180516,4603121.01350818,3.24926407450205,4.67516378413847 1508 | 305929.460180516,4603121.01350818,3.38874722823481,4.70417766862668 1509 | 305954.460180516,4603121.01350818,3.47879242549197,4.72866954870769 1510 | 305979.460180516,4603121.01350818,3.55805719660121,4.75909652848813 1511 | 306004.460180516,4603121.01350818,3.6241272105895,4.78165654753035 1512 | 306029.460180516,4603121.01350818,3.73235205183979,4.81654190577507 1513 | 306054.460180516,4603121.01350818,3.81378703130088,4.83494736026998 1514 | 306079.460180516,4603121.01350818,3.87982465782452,4.85750789277924 1515 | 306104.460180516,4603121.01350818,4.02123963904771,4.90097931954983 1516 | 306129.460180516,4603121.01350818,4.12873191855653,4.9258697712203 1517 | 306154.460180516,4603121.01350818,4.03508298637082,4.89843946168108 1518 | 306179.460180516,4603121.01350818,3.99439969100794,4.88302783158179 1519 | 306204.460180516,4603121.01350818,3.93423161589577,4.857752554322 1520 | 306229.460180516,4603121.01350818,3.8546434693554,4.83657909490453 1521 | 305854.460180516,4603146.01350818,3.67126105678507,4.78775962331445 1522 | 305879.460180516,4603146.01350818,3.45940554589303,4.72838192357879 1523 | 305904.460180516,4603146.01350818,3.22083456045195,4.66643567290884 1524 | 305929.460180516,4603146.01350818,3.18626935194513,4.66081762526253 1525 | 305954.460180516,4603146.01350818,3.25090581425653,4.6896623375991 1526 | 305979.460180516,4603146.01350818,3.54024488641239,4.76796693857738 1527 | 306004.460180516,4603146.01350818,3.7377911512154,4.82720509489309 1528 | 306029.460180516,4603146.01350818,3.81335504460686,4.84865417828319 1529 | 306054.460180516,4603146.01350818,3.7298238266997,4.81895003145454 1530 | 306079.460180516,4603146.01350818,3.73721529992674,4.81901618797273 1531 | 306104.460180516,4603146.01350818,3.92670628335421,4.86863276191036 1532 | 306129.460180516,4603146.01350818,4.03762602460693,4.89770284668555 1533 | 306154.460180516,4603146.01350818,4.03872263080907,4.89968504821807 1534 | 305854.460180516,4603171.01350818,3.70893215521543,4.79360490776191 1535 | 305879.460180516,4603171.01350818,3.53078640561458,4.74696480903851 1536 | 305904.460180516,4603171.01350818,3.31597041440774,4.6949265817896 1537 | 305929.460180516,4603171.01350818,3.1727134535752,4.66795101743322 1538 | 305954.460180516,4603171.01350818,3.29290183774334,4.70786254381712 1539 | 305979.460180516,4603171.01350818,3.67506039114493,4.80762317322725 1540 | 306004.460180516,4603171.01350818,4.01711669960359,4.89990656372035 1541 | 306029.460180516,4603171.01350818,3.97993925949992,4.88932824616831 1542 | 306054.460180516,4603171.01350818,3.82500573062265,4.84703324005541 1543 | 306079.460180516,4603171.01350818,3.80129667091062,4.83984677510732 1544 | 305854.460180516,4603196.01350818,3.7327409295941,4.80197531741871 1545 | 305879.460180516,4603196.01350818,3.67650483933322,4.7810574844977 1546 | 305904.460180516,4603196.01350818,3.51812108396084,4.74834710286809 1547 | 305929.460180516,4603196.01350818,3.38593539656074,4.73227404481408 1548 | 305954.460180516,4603196.01350818,3.48554008410693,4.76459774480161 1549 | 305979.460180516,4603196.01350818,3.75187020177976,4.83490370640583 1550 | 306004.460180516,4603196.01350818,3.95248085293594,4.88791262874642 1551 | 305879.460180516,4603221.01350818,3.87234030658636,4.81865590783659 1552 | 305904.460180516,4603221.01350818,3.72557731588598,4.79657911254621 1553 | 305929.460180516,4603221.01350818,3.64614538789439,4.79724708259553 1554 | --------------------------------------------------------------------------------