Can someone help me understand why I have issue getting my dataframe (point coordinates into the same coordinate with my Raster data?
My dataframe with point files (lets call it trainData_crs)
trainData_crs<- read.csv(file.csv)
class(trainData_crs)
[1] "data.frame"
The data frame had no coordinate system
crs(trainData_crs)
[1] NA
summary(trainData_crs)
PlotType Class Latitude Longitude
closedforest:22 Min. :1.000 Min. :17.81 Min. :24.72
grass :34 1st Qu.:2.000 1st Qu.:17.86 1st Qu.:24.98
lowforest :24 Median :3.000 Median :17.92 Median :25.02
mediumforest:26 Mean :2.904 Mean :17.95 Mean :25.02
shrubs : 4 3rd Qu.:4.000 3rd Qu.:18.01 3rd Qu.:25.10
unknown : 3 Max. :7.000 Max. :18.46 Max. :25.16
water : 1
Create a TIFF raster and convert it to Rasterbricks
all_landsat_bands<-list.files ("file.tif")
img <- brick(all_landsat_bands)
img <- brick(LandsatAprJune_2019_st)
class(img)
[1] "RasterBrick"
attr(,"package")
[1] "raster"
names(img)
[1] "B1" "B2" "B3" "B4" "B5" "B6" "B7" "B10" "B11"
First convert data frame to Latitude and Longitude coordinate numbers
coordinates(trainData_crs)<-~Latitude +Longitude
proj4string(trainData_crs) = CRS("+init=epsg:4326")
Convert to same projection
trainData_crs_sp <- spTransform(trainData_crs, crs(img))
Confirm if points and image are in same coordinates
crs(trainData_crs_sp)
CRS arguments:
+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +towgs84=-138,-105,-289,0,0,0,0 +units=m
+no_defs
crs(img)
CRS arguments:
+proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +towgs84=-138,-105,-289,0,0,0,0 +units=m
+no_defs
Plot them to check if the points overlap with rasterBrick
plotRGB(img,
r = 4, g = 3, b = 2,
stretch = "lin",
scale=1000,
axes = TRUE,
main = "RGB composite image\n Landsat Bands 7, 3, 2"); plot(trainData_crs_sp, add=T)
But the difficulty that I have is that, even after converting the dataframe of points to rasterbrick coordinates, they still do not fall in the same area or overlap.
sp::bbox(trainData_crs_sp)
andraster::extent(img)
?