library(geoR)
## Warning: package 'geoR' was built under R version 4.4.3
## --------------------------------------------------------------
## Analysis of Geostatistical Data
## For an Introduction to geoR go to http://www.leg.ufpr.br/geoR
## geoR version 1.9-6 (built on 2025-08-29) is now loaded
## --------------------------------------------------------------
library(gstat)
## Warning: package 'gstat' was built under R version 4.4.3
data("coalash")
plot(coalash$x,coalash$y)

plot(coalash$x,coalash$y,pch=4)

library(scatterplot3d)
scatterplot3d(coalash$x,coalash$y,coalash$coalash)

attach(coalash)
## The following object is masked _by_ .GlobalEnv:
##
## coalash
plot(x,y)

library(sf) #For working with spatial data
library(tidyverse) #For data wrangling and ggplot2
library(ggspatial) #For spatial data with ggplot2
library(tigris) #For downloading spatial data directly into R
#setwd("~/AST 511")
setwd("D:/Masters/AST 531 Statistical Computing I/AST 511")
#Read in Virginia polygon
virginia <- st_read("Data 511/VirginiaBoundary.shp")
## Reading layer `VirginiaBoundary' from data source
## `D:\Masters\AST 531 Statistical Computing I\AST 511\Data 511\VirginiaBoundary.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 1 feature and 9 fields
## Geometry type: POLYGON
## Dimension: XY
## Bounding box: xmin: -83.67541 ymin: 36.54074 xmax: -75.86704 ymax: 39.46601
## Geodetic CRS: NAD83
plot(virginia)

as.character(st_geometry_type(virginia))[1]
## [1] "POLYGON"
plot(virginia$geometry)

#Data frame of cities
cities <- data.frame(
City = c("Richmond", "Virginia Beach", "Norfolk", "Chesapeake", "Arlington", "Charlottesville"),
Latitude = c(37.5413, 36.8529, 36.8508, 36.7682, 38.8797, 38.0293),
Longitude = c(-77.4348, -75.9780, -76.2859, -76.2875, -77.1080, -78.4767))
#Examine structure of data frame
str(cities)
## 'data.frame': 6 obs. of 3 variables:
## $ City : chr "Richmond" "Virginia Beach" "Norfolk" "Chesapeake" ...
## $ Latitude : num 37.5 36.9 36.9 36.8 38.9 ...
## $ Longitude: num -77.4 -76 -76.3 -76.3 -77.1 ...
#Convert to sf object
cities.sf <-
st_as_sf(cities, coords = c("Longitude", "Latitude"), remove = FALSE, crs = 4326)
#Plot the cities
plot(cities.sf$geometry)

st_crs(virginia)$epsg
## [1] 4269
st_crs(cities.sf)$epsg
## [1] 4326
#Transform CRS
virginia.crs <- st_transform(virginia, crs = 26918)
cities.crs <- st_transform(cities.sf, crs = 26918)
#Check that the layers have the same CRS
st_crs(virginia.crs) == st_crs(cities.crs)
## [1] TRUE
ggplot() +
#Add Virginia polygon
geom_sf(data = virginia.crs) +
#Add cities layer
geom_sf(data = cities.crs, aes(color = City, label = City), size = 3) +
#Add titles
labs(x = "Longitude", y = "Latitude", title = "Virginia Cities") +
#Add theme
theme_bw()
## Warning in layer_sf(geom = GeomSf, data = data, mapping = mapping, stat = stat,
## : Ignoring unknown aesthetics: label

#Get bounding box of the cities
cities.extent <- st_bbox(cities.crs)
#Plot using the packages ggplot and ggspatial
ggplot() +
#Crop Virginia boundary to spatial extent of cities and add Virginia layer
geom_sf(data = st_crop(virginia.crs, cities.extent)) +
#Add cities layer
geom_sf(data = cities.crs, aes(color = City, label = City), size = 3) +
#Add scale bar to bottom left from ggspatial
annotation_scale(location = "bl", height = unit(.25, "cm"),
width = unit(1, "cm"), pad_x = unit(0.3, "in"),
pad_y = unit(0.3, "in")) +
#Add north arrow to bottom left from ggspatial
annotation_north_arrow(height = unit(1, "cm"), width = unit(1, "cm"),
which_north = "true", location = "bl",
pad_x = unit(0.4, "in"), pad_y = unit(0.5, "in")) +
#Add titles
labs(x = "Longitude", y = "Latitude", title = "Virginia Cities") +
#Add theme
theme_bw()
## Warning: attribute variables are assumed to be spatially constant throughout
## all geometries
## Warning in layer_sf(geom = GeomSf, data = data, mapping = mapping, stat = stat,
## : Ignoring unknown aesthetics: label
## Warning in annotation_scale(location = "bl", height = unit(0.25, "cm"), :
## Ignoring unknown parameters: `width`

#Distance from each city to the border of Virginia
dist.border <- st_distance(cities.crs, st_boundary(virginia.crs))
#See results
print(dist.border)
## Units: [m]
## [,1]
## [1,] 85469.5113
## [2,] 121.7268
## [3,] 11906.0329
## [4,] 20091.7204
## [5,] 3054.4664
## [6,] 82565.9571
#Calculate distance from Charlottesville to each city
dist.cville <-
st_distance(cities.crs, filter(cities.crs, City == "Charlottesville")) %>%
bind_cols(cities.crs)
## New names:
## • `` -> `...1`
#Look at first 3 distances
head(dist.cville, n = 3)
## ...1 City Latitude Longitude geometry
## 1 106615.8 Richmond 37.5413 -77.4348 POINT (284889.6 4157709)
## 2 256808.3 Virginia Beach 36.8529 -75.9780 POINT (412812.9 4079001)
## 3 233902.9 Norfolk 36.8508 -76.2859 POINT (385359.8 4079093)
#Get county data for Virginia from tigris package and transform the CRS
va.counties <- counties(state = "VA") %>%
st_transform(crs = 26918)
## Retrieving data for the year 2024
## | | | 0% | | | 1% | |= | 1% | |= | 2% | |== | 2% | |== | 3% | |== | 4% | |=== | 4% | |=== | 5% | |==== | 5% | |==== | 6% | |===== | 6% | |===== | 7% | |===== | 8% | |====== | 8% | |====== | 9% | |======= | 9% | |======= | 10% | |======= | 11% | |======== | 11% | |======== | 12% | |========= | 12% | |========= | 13% | |========= | 14% | |========== | 14% | |========== | 15% | |=========== | 15% | |=========== | 16% | |============ | 16% | |============ | 17% | |============ | 18% | |============= | 18% | |============= | 19% | |============== | 19% | |============== | 20% | |============== | 21% | |=============== | 21% | |=============== | 22% | |================ | 22% | |================ | 23% | |================ | 24% | |================= | 24% | |================= | 25% | |================== | 25% | |================== | 26% | |=================== | 26% | |=================== | 27% | |=================== | 28% | |==================== | 28% | |==================== | 29% | |===================== | 29% | |===================== | 30% | |===================== | 31% | |====================== | 31% | |====================== | 32% | |======================= | 32% | |======================= | 33% | |======================= | 34% | |======================== | 34% | |======================== | 35% | |========================= | 35% | |========================= | 36% | |========================== | 36% | |========================== | 37% | |========================== | 38% | |=========================== | 38% | |=========================== | 39% | |============================ | 39% | |============================ | 40% | |============================ | 41% | |============================= | 41% | |============================= | 42% | |============================== | 42% | |============================== | 43% | |============================== | 44% | |=============================== | 44% | |=============================== | 45% | |================================ | 45% | |================================ | 46% | |================================= | 46% | |================================= | 47% | |================================= | 48% | |================================== | 48% | |================================== | 49% | |=================================== | 49% | |=================================== | 50% | |=================================== | 51% | |==================================== | 51% | |==================================== | 52% | |===================================== | 52% | |===================================== | 53% | |===================================== | 54% | |====================================== | 54% | |====================================== | 55% | |======================================= | 55% | |======================================= | 56% | |======================================== | 56% | |======================================== | 57% | |======================================== | 58% | |========================================= | 58% | |========================================= | 59% | |========================================== | 59% | |========================================== | 60% | |========================================== | 61% | |=========================================== | 61% | |=========================================== | 62% | |============================================ | 62% | |============================================ | 63% | |============================================ | 64% | |============================================= | 64% | |============================================= | 65% | |============================================== | 65% | |============================================== | 66% | |=============================================== | 66% | |=============================================== | 67% | |=============================================== | 68% | |================================================ | 68% | |================================================ | 69% | |================================================= | 69% | |================================================= | 70% | |================================================= | 71% | |================================================== | 71% | |================================================== | 72% | |=================================================== | 72% | |=================================================== | 73% | |=================================================== | 74% | |==================================================== | 74% | |==================================================== | 75% | |===================================================== | 75% | |===================================================== | 76% | |====================================================== | 76% | |====================================================== | 77% | |====================================================== | 78% | |======================================================= | 78% | |======================================================= | 79% | |======================================================== | 79% | |======================================================== | 80% | |======================================================== | 81% | |========================================================= | 81% | |========================================================= | 82% | |========================================================== | 82% | |========================================================== | 83% | |========================================================== | 84% | |=========================================================== | 84% | |=========================================================== | 85% | |============================================================ | 85% | |============================================================ | 86% | |============================================================= | 86% | |============================================================= | 87% | |============================================================= | 88% | |============================================================== | 88% | |============================================================== | 89% | |=============================================================== | 89% | |=============================================================== | 90% | |=============================================================== | 91% | |================================================================ | 91% | |================================================================ | 92% | |================================================================= | 92% | |================================================================= | 93% | |================================================================= | 94% | |================================================================== | 94% | |================================================================== | 95% | |=================================================================== | 95% | |=================================================================== | 96% | |==================================================================== | 96% | |==================================================================== | 97% | |==================================================================== | 98% | |===================================================================== | 98% | |===================================================================== | 99% | |======================================================================| 99% | |======================================================================| 100%
#Get road data and transform the CRS
roads <- primary_secondary_roads(state = "VA", year = 2021) %>% st_transform(crs = 26918)
## | | | 0% | | | 1% | |= | 1% | |== | 2% | |== | 3% | |=== | 4% | |=== | 5% | |==== | 5% | |==== | 6% | |===== | 7% | |===== | 8% | |====== | 8% | |====== | 9% | |======= | 9% | |======= | 10% | |======= | 11% | |======== | 11% | |======== | 12% | |========= | 12% | |========= | 13% | |========== | 14% | |========== | 15% | |=========== | 15% | |=========== | 16% | |============ | 17% | |============ | 18% | |============= | 18% | |============= | 19% | |============== | 20% | |============== | 21% | |=============== | 21% | |=============== | 22% | |================ | 22% | |================ | 23% | |================= | 24% | |================= | 25% | |================== | 25% | |================== | 26% | |=================== | 27% | |=================== | 28% | |==================== | 28% | |==================== | 29% | |===================== | 29% | |===================== | 30% | |===================== | 31% | |====================== | 31% | |====================== | 32% | |=========================== | 38% | |=========================== | 39% | |============================ | 39% | |============================ | 40% | |============================ | 41% | |============================= | 41% | |============================= | 42% | |============================== | 42% | |============================== | 43% | |=============================== | 44% | |==================================== | 51% | |==================================== | 52% | |===================================== | 52% | |===================================== | 53% | |====================================== | 54% | |====================================== | 55% | |======================================= | 55% | |======================================= | 56% | |======================================== | 57% | |======================================== | 58% | |========================================= | 58% | |========================================= | 59% | |========================================== | 59% | |========================================== | 60% | |========================================== | 61% | |=========================================== | 61% | |=========================================== | 62% | |============================================ | 62% | |============================================ | 63% | |============================================= | 64% | |============================================= | 65% | |============================================== | 65% | |============================================== | 66% | |=============================================== | 67% | |=============================================== | 68% | |================================================ | 68% | |================================================ | 69% | |================================================= | 69% | |================================================= | 70% | |================================================= | 71% | |================================================== | 71% | |================================================== | 72% | |=================================================== | 72% | |=================================================== | 73% | |==================================================== | 74% | |==================================================== | 75% | |===================================================== | 75% | |===================================================== | 76% | |====================================================== | 77% | |====================================================== | 78% | |======================================================= | 78% | |======================================================= | 79% | |======================================================== | 79% | |======================================================== | 80% | |======================================================== | 81% | |========================================================= | 81% | |========================================================= | 82% | |========================================================== | 82% | |========================================================== | 83% | |=========================================================== | 84% | |=========================================================== | 85% | |============================================================ | 85% | |============================================================ | 86% | |============================================================= | 87% | |============================================================= | 88% | |============================================================== | 88% | |============================================================== | 89% | |=============================================================== | 89% | |=============================================================== | 90% | |=============================================================== | 91% | |================================================================ | 91% | |================================================================ | 92% | |================================================================= | 92% | |================================================================= | 93% | |================================================================== | 94% | |================================================================== | 95% | |=================================================================== | 95% | |=================================================================== | 96% | |==================================================================== | 97% | |==================================================================== | 98% | |===================================================================== | 98% | |===================================================================== | 99% | |======================================================================| 99% | |======================================================================| 100%
#Plot with ggplot
ggplot() +
#Crop Virginia counties to cities extent and plot
geom_sf(data = st_crop(va.counties, cities.extent), color = "gray100", fill = "gray88", size = .25) +
#Crop roads to cities extent and plot
geom_sf(data = st_crop(roads, cities.extent), color = "black", size = .3) +
#Plot cities
geom_sf(data = cities.crs, aes(color = City), size = 4) +
#Add titles
labs(x = "Longitude", y = "Latitude", title = "Map of Virginia Cities") +
#Adjust theme
theme_bw() +
theme(plot.title = element_text(hjust = 0.5))
## Warning: attribute variables are assumed to be spatially constant throughout
## all geometries
## Warning: attribute variables are assumed to be spatially constant throughout
## all geometries

library(sf) #For working with spatial data
library(tidyverse) #For data wrangling and ggplot2
library(ggspatial) #For spatial data with ggplot2
library(tigris) #For downloading spatial data directly into R
#Read in Bangladesh
bgd <- st_read("Data 511/BGD_adm0.shp")
## Reading layer `BGD_adm0' from data source
## `D:\Masters\AST 531 Statistical Computing I\AST 511\Data 511\BGD_adm0.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 1 feature and 67 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 88.01057 ymin: 20.74111 xmax: 92.67366 ymax: 26.6344
## Geodetic CRS: WGS 84
plot(bgd)

as.character(st_geometry_type(bgd))[1]
## [1] "MULTIPOLYGON"
plot(bgd$geometry)

library(readr)
temp <- read_csv("Data 511/Average_temp_2018.csv")
## New names:
## Rows: 35 Columns: 6
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," chr
## (1): Station dbl (5): ...1, Year, Temp, Lat, Lon
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
#Examine structure of data frame
str(temp)
## spc_tbl_ [35 × 6] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ ...1 : num [1:35] 1 2 3 4 5 6 7 8 9 10 ...
## $ Station: chr [1:35] "Ambagan(Ctg)" "Barisal" "Bhola" "Bogra" ...
## $ Year : num [1:35] 2018 2018 2018 2018 2018 ...
## $ Temp : num [1:35] 25.7 25.4 25.6 25.3 26.2 ...
## $ Lat : num [1:35] 22.4 22.8 22.7 24.9 23.3 ...
## $ Lon : num [1:35] 91.8 90.4 90.7 89.4 90.7 ...
## - attr(*, "spec")=
## .. cols(
## .. ...1 = col_double(),
## .. Station = col_character(),
## .. Year = col_double(),
## .. Temp = col_double(),
## .. Lat = col_double(),
## .. Lon = col_double()
## .. )
## - attr(*, "problems")=<externalptr>
tem.sf<-st_as_sf(x = temp,coords = c("Lon", "Lat"), remove = FALSE, crs = 4326)
#Plot the cities
plot(tem.sf$geometry)

st_crs(bgd)$epsg
## [1] 4326
st_crs(tem.sf)$epsg
## [1] 4326
#Transform CRS
# virginia.crs <- st_transform(virginia, crs = 26918)
# cities.crs <- st_transform(cities.sf, crs = 26918)
#Check that the layers have the same CRS
# st_crs(virginia.crs) == st_crs(cities.crs)
ggplot() +
#Add Virginia polygon
geom_sf(data = bgd) +
#Add cities layer
geom_sf(data = tem.sf, aes(color = Station, label = Station), size = 3) +
#Add titles
labs(x = "Longitude", y = "Latitude", title = "Bangladesh Cities") +
#Add theme
theme_bw()

#Get bounding box of the cities
tem.extent <- st_bbox(tem.sf)
#Plot using the packages ggplot and ggspatial
ggplot() +
#Crop Virginia boundary to spatial extent of cities and add Virginia layer
geom_sf(data = st_crop(bgd, tem.extent)) +
#Add cities layer
geom_sf(data = tem.sf, aes(color = Station, label = Station), size = 3) +
#Add scale bar to bottom left from ggspatial
annotation_scale(location = "bl", height = unit(.25, "cm"),
width = unit(1, "cm"), pad_x = unit(0.3, "in"),
pad_y = unit(0.3, "in")) +
#Add north arrow to bottom left from ggspatial
annotation_north_arrow(height = unit(1, "cm"), width = unit(1, "cm"),
which_north = "true", location = "bl",
pad_x = unit(0.4, "in"), pad_y = unit(0.5, "in")) +
#Add titles
labs(x = "Longitude", y = "Latitude", title = "Virginia Cities") +
#Add theme
theme_bw()

# Distance from each Station to the border of Bangladesh
dist.border <- st_distance(tem.sf, st_boundary(bgd))
# See results
print(dist.border)
## Units: [m]
## [,1]
## [1,] 6342.1591
## [2,] 2491.4450
## [3,] 4080.1436
## [4,] 56254.0368
## [5,] 8151.8056
## [6,] 4298.5340
## [7,] 17206.1147
## [8,] 7989.6323
## [9,] 331.0868
## [10,] 65087.2476
## [11,] 16381.1277
## [12,] 86839.0141
## [13,] 2333.5789
## [14,] 2033.8490
## [15,] 32486.1776
## [16,] 17869.9803
## [17,] 532.3991
## [18,] 3361.3528
## [19,] 120.0074
## [20,] 17683.7922
## [21,] 28625.1446
## [22,] 320.5012
## [23,] 47611.9419
## [24,] 2088.5302
## [25,] 6028.5595
## [26,] 34190.6594
## [27,] 33044.4426
## [28,] 259.4593
## [29,] 13045.2760
## [30,] 5370.7863
## [31,] 5968.2587
## [32,] 27715.3041
## [33,] 30938.5015
## [34,] 110094.9736
## [35,] 875.9095
# Calculate distance from Dhaka to each Station
dist.cville <-
st_distance(tem.sf, filter(tem.sf, Station == "Dhaka")) %>%
bind_cols(tem.sf)
## New names:
## • `` -> `...1`
## • `...1` -> `...2`
#Look at first 3 distances
head(dist.cville, n = 3)
## ...1 ...2 Station Year Temp Lat Lon
## 1 215239.0 1 Ambagan(Ctg) 2018 25.68333 22.35000 91.81700
## 2 113061.2 2 Barisal 2018 25.36667 22.75000 90.36667
## 3 123504.7 3 Bhola 2018 25.60833 22.68333 90.65000
## geometry
## 1 POINT (91.817 22.35)
## 2 POINT (90.36667 22.75)
## 3 POINT (90.65 22.68333)
# look all
dist.cville
## ...1 ...2 Station Year Temp Lat Lon
## 1 215239.00 1 Ambagan(Ctg) 2018 25.68333 22.35000 91.81700
## 2 113061.17 2 Barisal 2018 25.36667 22.75000 90.36667
## 3 123504.73 3 Bhola 2018 25.60833 22.68333 90.65000
## 4 158507.77 4 Bogra 2018 25.29167 24.85000 89.36667
## 5 64292.63 5 Chandpur 2018 26.20833 23.26667 90.70000
## 6 222063.76 6 Chittagong 2018 26.05833 22.27000 91.82000
## 7 160029.26 7 chuadanga 2018 24.80000 23.65000 88.81667
## 8 89546.83 8 Comilla 2018 25.17500 23.43333 91.18333
## 9 304579.90 9 Cox's Bazar 2018 25.89167 21.45000 91.96667
## 10 0.00 10 Dhaka 2018 26.08333 23.76667 90.38333
## 11 270814.57 11 Dinajpur 2018 24.64167 25.65000 88.68333
## 12 57384.34 12 Faridpur 2018 25.49167 23.60000 89.85000
## 13 133300.42 13 Feni 2018 25.05000 23.03333 91.41667
## 14 165389.34 14 Hatiya 2018 25.53333 22.43333 91.10000
## 15 141495.45 15 Ishurdi 2018 24.86667 24.13333 89.05000
## 16 140019.23 16 Jessore 2018 25.65833 23.18333 89.16667
## 17 198892.44 17 Khepupara 2018 25.77500 21.98333 90.23333
## 18 139620.00 18 Khulna 2018 26.15000 22.78333 89.53333
## 19 263851.73 19 Kutubdia 2018 25.85833 21.81667 91.85000
## 20 123977.81 20 M.court 2018 25.87500 22.86667 91.10000
## 21 69766.09 21 Madaripur 2018 25.40833 23.16667 90.18333
## 22 165265.79 22 Mongla 2018 26.02500 22.46667 89.60000
## 23 105756.92 23 Mymensingh 2018 24.72500 24.71667 90.43333
## 24 159461.72 24 Patuakhali 2018 25.96667 22.33333 90.33333
## 25 183465.78 25 Rajshahi 2018 25.00833 24.36667 88.70000
## 26 230876.46 26 Rangamati 2018 24.70833 22.53333 92.20000
## 27 247600.64 27 Rangpur 2018 24.71667 25.73333 89.23333
## 28 178582.47 28 Sandwip 2018 25.70000 22.48333 91.43333
## 29 176840.99 29 Satkhira 2018 25.97500 22.71667 89.08333
## 30 188222.34 30 Sitakunda 2018 25.03333 22.58333 91.70000
## 31 149375.30 31 Srimangal 2018 24.14167 24.30000 91.73333
## 32 265640.86 32 sydpur 2018 24.90000 25.75000 88.91667
## 33 197424.44 33 Sylhet 2018 24.80000 24.90000 91.88333
## 34 70553.00 34 Tangail 2018 25.16667 24.25000 89.93333
## 35 377946.50 35 Teknaf 2018 26.08333 20.86667 92.30000
## geometry
## 1 POINT (91.817 22.35)
## 2 POINT (90.36667 22.75)
## 3 POINT (90.65 22.68333)
## 4 POINT (89.36667 24.85)
## 5 POINT (90.7 23.26667)
## 6 POINT (91.82 22.27)
## 7 POINT (88.81667 23.65)
## 8 POINT (91.18333 23.43333)
## 9 POINT (91.96667 21.45)
## 10 POINT (90.38333 23.76667)
## 11 POINT (88.68333 25.65)
## 12 POINT (89.85 23.6)
## 13 POINT (91.41667 23.03333)
## 14 POINT (91.1 22.43333)
## 15 POINT (89.05 24.13333)
## 16 POINT (89.16667 23.18333)
## 17 POINT (90.23333 21.98333)
## 18 POINT (89.53333 22.78333)
## 19 POINT (91.85 21.81667)
## 20 POINT (91.1 22.86667)
## 21 POINT (90.18333 23.16667)
## 22 POINT (89.6 22.46667)
## 23 POINT (90.43333 24.71667)
## 24 POINT (90.33333 22.33333)
## 25 POINT (88.7 24.36667)
## 26 POINT (92.2 22.53333)
## 27 POINT (89.23333 25.73333)
## 28 POINT (91.43333 22.48333)
## 29 POINT (89.08333 22.71667)
## 30 POINT (91.7 22.58333)
## 31 POINT (91.73333 24.3)
## 32 POINT (88.91667 25.75)
## 33 POINT (91.88333 24.9)
## 34 POINT (89.93333 24.25)
## 35 POINT (92.3 20.86667)
library(geoR)
library(gstat)
data("coalash")
############# Large scale component ##############
plot(coalash$x,coalash$y,pch=4,cex=0.75,xlab="x",ylab="y")

library(scatterplot3d)
scatterplot3d(coalash$x,coalash$y, coalash$coalash, xlab = "x", ylab = "y", zlab = "coal")

plot(coalash$x,coalash$y,"n",xlab="x",ylab="y")
text(coalash$x,coalash$y,label=coalash$coalash,cex=0.5)

par(mfrow=c(1,1))
plot(unique(coalash$x),tapply(coalash$coalash,coalash$x,mean),xlab="x",
ylab="mean coal",pch=20)

plot(unique(coalash$y),tapply(coalash$coalash,coalash$y,mean),xlab="y",
ylab="mean coal",pch=20)

m <- median(coalash$coalash)
plot(coalash$x[coalash$coalash <=m], coalash$y[coalash$coalash <=m], pch =5, xlab = "x", ylab = "y")
points(coalash$x[coalash$coalash >m], coalash$y[coalash$coalash >m], pch =20)

##################################################
data(elevation)
head(elevation)
## $coords
## x y
## 1 0.3 6.1
## 2 1.4 6.2
## 3 2.4 6.1
## 4 3.6 6.2
## 5 5.7 6.2
## 6 1.6 5.2
## 7 2.9 5.1
## 8 3.4 5.3
## 9 3.4 5.7
## 10 4.8 5.6
## 11 5.3 5.0
## 12 6.2 5.2
## 13 0.2 4.3
## 14 0.9 4.2
## 15 2.3 4.8
## 16 2.5 4.5
## 17 3.0 4.5
## 18 3.5 4.5
## 19 4.1 4.6
## 20 4.9 4.2
## 21 6.3 4.3
## 22 0.9 3.2
## 23 1.7 3.8
## 24 2.4 3.8
## 25 3.7 3.5
## 26 4.5 3.2
## 27 5.2 3.2
## 28 6.3 3.4
## 29 0.3 2.4
## 30 2.0 2.7
## 31 3.8 2.3
## 32 6.3 2.2
## 33 0.6 1.7
## 34 1.5 1.8
## 35 2.1 1.8
## 36 2.1 1.1
## 37 3.1 1.1
## 38 4.5 1.8
## 39 5.5 1.7
## 40 5.7 1.0
## 41 6.2 1.0
## 42 0.4 0.5
## 43 1.4 0.6
## 44 1.4 0.1
## 45 2.1 0.7
## 46 2.3 0.3
## 47 3.1 0.0
## 48 4.1 0.8
## 49 5.4 0.4
## 50 6.0 0.1
## 51 5.7 3.0
## 52 3.6 6.0
##
## $data
## [1] 870 793 755 690 800 800 730 728 710 780 804 855 830 813 762 765 740 765 760
## [20] 790 820 855 812 773 812 827 805 840 890 820 873 875 873 865 841 862 908 855
## [39] 850 882 910 940 915 890 880 870 880 960 890 860 830 705
plot(variog(elevation, op = "cloud"), pch = 20)
## variog: computing omnidirectional variogram

estvar<-variog(elevation)
## variog: computing omnidirectional variogram
names(estvar)
## [1] "u" "v" "n" "sd"
## [5] "bins.lim" "ind.bin" "var.mark" "beta.ols"
## [9] "output.type" "max.dist" "estimator.type" "n.data"
## [13] "lambda" "trend" "pairs.min" "nugget.tolerance"
## [17] "direction" "tolerance" "uvec" "call"
estvar$v
## [1] 168.6250 695.7431 1195.4654 2206.3057 3073.5943 4037.8634 4605.0765
## [8] 6316.2616 6641.9603 6319.5886 5444.7903 3417.1000 3261.1250
estvarm<-variog(elevation,estimator.type="modulus")
## variog: computing omnidirectional variogram
estvarm$v
## [1] 216.0084 875.2365 1523.2942 2743.6665 3779.0148 4868.4651 5562.8754
## [8] 7817.4419 7075.8987 6754.4119 6959.8737 3681.7172 3033.4134
plot(estvar,pch=20)
fit_g<-variofit(estvar,ini.cov.pars=c(5000,5)
,cov.model="gaussian", fix.nugget = FALSE, nugget = 1)
## variofit: covariance model used is gaussian
## variofit: weights used: npairs
## variofit: minimisation function used: optim
lines(fit_g)
fit_e<-variofit(estvar,ini.cov.pars=c(5000,5)
,cov.model="exponential", fix.nugget = FALSE, nugget = 1)
## variofit: covariance model used is exponential
## variofit: weights used: npairs
## variofit: minimisation function used: optim
lines(fit_e, col = "red")
fit_s<-variofit(estvar,ini.cov.pars=c(5000,5)
,cov.model="spherical", fix.nugget = FALSE, nugget = 1)
## variofit: covariance model used is spherical
## variofit: weights used: npairs
## variofit: minimisation function used: optim
lines(fit_s, col = "blue")
fit_c<-variofit(estvar,ini.cov.pars=c(5000,5)
,cov.model="circular", fix.nugget = FALSE, nugget = 1)
## variofit: covariance model used is circular
## variofit: weights used: npairs
## variofit: minimisation function used: optim
lines(fit_c, col = "green")
fit_m<-variofit(estvar,ini.cov.pars=c(5000,5)
,cov.model="matern", fix.nugget = FALSE, nugget = 0, fix.kappa = FALSE, kappa = 0.3)
## variofit: covariance model used is matern
## variofit: weights used: npairs
## variofit: minimisation function used: optim
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, :
## Infinity value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NA
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NaN
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, :
## Infinity value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NA
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NaN
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, :
## Infinity value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NA
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NaN
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, :
## Infinity value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NA
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NaN
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, :
## Infinity value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NA
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NaN
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, :
## Infinity value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NA
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NaN
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, :
## Infinity value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NA
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NaN
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, :
## Infinity value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NA
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NaN
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, :
## Infinity value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NA
## value in cov.spatial
## Warning in cov.spatial(g.l$u, cov.model = g.l$cov.model, kappa = kappa, : NaN
## value in cov.spatial
lines(fit_m, col = "blue4")
## Warning in cov.spatial(x, cov.model = my.l$cov.model, kappa = my.l$kappa, :
## Infinity value in cov.spatial
## Warning in cov.spatial(x, cov.model = my.l$cov.model, kappa = my.l$kappa, : NA
## value in cov.spatial
## Warning in cov.spatial(x, cov.model = my.l$cov.model, kappa = my.l$kappa, : NaN
## value in cov.spatial

library(geoR)
library(gstat)
library(readr)
tem <- read_csv("Data 511/Average_temp_2018.csv")
## New names:
## Rows: 35 Columns: 6
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," chr
## (1): Station dbl (5): ...1, Year, Temp, Lat, Lon
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
############# Large scale component ##############
plot(tem$Lat,tem$Lon,pch=4,cex=0.75,xlab="x",ylab="y")

library(scatterplot3d)
scatterplot3d(tem$Lat,tem$Lon, tem$Tem, xlab = "x", ylab = "y", zlab = "coal")
## Warning: Unknown or uninitialised column: `Tem`.

plot(tem$Lat,tem$Lon,"n")
text(tem$Lat,tem$Lon,label=round(tem$Temp,1),cex=0.5)

m <- mean(tem$Temp)
plot(tem$Lat[tem$Temp <=m], tem$Lon[tem$Temp <=m], pch =5, xlab = "x", ylab = "y")
points(tem$Lat[tem$Temp >m], tem$Lon[tem$Temp >m], pch =20)

tem.sf<-st_as_sf(x = temp,coords = c("Lon", "Lat"), remove = FALSE, crs = 4326)
#Plot the cities
plot(tem.sf$geometry)

tem.sf<-tem.sf %>%
mutate(ind= ifelse(Temp> m,1,0))
ggplot() +
#Add Virginia polygon
geom_sf(data = bgd) +
#Add cities layer
geom_sf(data = tem.sf,aes(colour=ind,label=ind)) +
#Add titles
labs(x = "Longitude", y = "Latitude", title = "Bangladesh Cities") +
#Add theme
theme_bw()
## Warning in layer_sf(geom = GeomSf, data = data, mapping = mapping, stat = stat,
## : Ignoring unknown aesthetics: label

temp.geo<-as.geodata(obj = tem,coords.col = c("Lat","Lon"),data.col = "Temp")
plot(variog(temp.geo, op = "cloud"), pch = 20)
## variog: computing omnidirectional variogram

estvar<-variog(temp.geo)
## variog: computing omnidirectional variogram
names(estvar)
## [1] "u" "v" "n" "sd"
## [5] "bins.lim" "ind.bin" "var.mark" "beta.ols"
## [9] "output.type" "max.dist" "estimator.type" "n.data"
## [13] "lambda" "trend" "pairs.min" "nugget.tolerance"
## [17] "direction" "tolerance" "uvec" "call"
estvar$v
## [1] 0.1101736 0.1566892 0.1736328 0.2630166 0.3666166 0.3439492 0.4121331
## [8] 0.3871172 0.3632668 0.4757031 0.4574074 0.6544213 0.8170139
estvarm<-variog(temp.geo,estimator.type="modulus")
## variog: computing omnidirectional variogram
estvarm$v
## [1] 0.09313272 0.17600819 0.20014569 0.23310726 0.42897885 0.42226529
## [7] 0.40777491 0.44315910 0.56044560 0.59703263 0.57959215 1.03836586
## [13] 1.15157734
plot(estvar,pch=20)

plot(estvarm,pch=20)
