[R-sig-Geo] Calculate the area of pixel in square kilometers from a raster in lat/long projection
Thiago V. dos Santos
thi_veloso at yahoo.com.br
Wed Nov 23 16:56:32 CET 2016
raster::area would calculate the area in square kilometers, and from there one can convert to hectare or square meters.
I was wondering: how do those calculations differ from raster::area's?
Greetings,
-- Thiago V. dos Santos
PhD student
Land and Atmospheric Science
University of Minnesota
On Tuesday, November 22, 2016 8:15 PM, Isaque Daniel <isaquedanielre at hotmail.com> wrote:
Hi there,
I found a example in stackoverflow of distance calculation and convertion, so I modificate that to compute the area by pixel in hectares using the raster in degrees.
#####
# Function to compute the area in hectares
measureAreahec <- function(imageRaster) {
R <- 6378.137 # radius of earth in Km
areaImagetemp <- area(ceiImg)
xresVal <- xres(areaImagetemp)
yresVal <- yres(areaImagetemp)
coords <- data.frame(coordinates(areaImagetemp))
colnames(coords) <- c("lon","lat")
lon1 <- coords$lon - (xresVal/2)
lon2 <- coords$lon + (xresVal/2)
lat1 <- coords$lat - (yresVal/2)
lat2 <- coords$lat + (yresVal/2)
# width
dLat <- (lat1-lat1)*pi/180
dLon <- (lon2-lon1)*pi/180
a <- sin((dLat/2))^2 + cos(lat1*pi/180)*cos(lat1*pi/180)*(sin(dLon/2))^2
c <- 2 * atan2(sqrt(a), sqrt(1-a))
dlongitude <- R * c * 1000
# heigth
dLat <- (lat1-lat2)*pi/180
dLon <- (lon1-lon1)*pi/180
a <- sin((dLat/2))^2 + cos(lat1*pi/180)*cos(lat1*pi/180)*(sin(dLon/2))^2
c <- 2 * atan2(sqrt(a), sqrt(1-a))
dlatitude <- R * c * 1000
return (dlatitude * dlongitude / 10000) # distance in meters
}
##########################
It's a very simple one, but ,maybe can help somebody.
Best
Isaque
------------------------------------------------------------------------------------------------------------------
Agronomist engineer
Master in Remote Sensing - National Institute for Space Research (INPE) - Brazil
PHD Student in Transport - Brazlia University (UNB)
________________________________
De: R-sig-Geo <r-sig-geo-bounces at r-project.org> em nome de Isaque Daniel <isaquedanielre at hotmail.com>
Enviado: ter�-feira, 22 de novembro de 2016 17:48
Para: r-sig-geo
Assunto: [R-sig-Geo] Calculate the area of pixel in square kilometers from a raster in lat/long projection
Hi,
I'm looking for some advice to convert the area calculated by raster::area() in a raster image as the projection in lat/long.
[[elided Hotmail spam]]
Best
Isaque
------------------------------------------------------------------------------------------------------------------
Agronomist engineer
Master in Remote Sensing - National Institute for Space Research (INPE) - Brazil
PHD Student in Transport - Brazilia University (UNB)
[[alternative HTML version deleted]]
_______________________________________________
R-sig-Geo mailing list
R-sig-Geo at r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
R-sig-Geo Info Page<https://stat.ethz.ch/mailman/listinfo/r-sig-geo>
stat.ethz.ch
R-sig-Geo -- R Special Interest Group on using Geographical data and Mapping About R-sig-Geo
[[alternative HTML version deleted]]
_______________________________________________
R-sig-Geo mailing list
R-sig-Geo at r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
More information about the R-sig-Geo
mailing list