## Warning: package 'cowplot' was built under R version 4.3.3
## Warning: package 'ggplot2' was built under R version 4.3.3

Aplicación de cálculo de coordenadas

Se tiene una fotografía aérea, cuyas coordenadas de referencia de las marcas fiduciales y la coordenada de un punto p cualquiera, se muestra en la siguiente tabla:

Punto Coord. x (und) Coord. y (und)
1 0.2203891 0.0073742
2 0.0083581 0.0079342
3 0.0088878 0.2199374
4 0.2209024 0.2193982
5 0.1143544 0.0016628
6 0.0026287 0.1139587
7 0.1149132 0.2256663
8 0.2266391 0.1133667
p 0.21469 0.19731

Además, las distancias reales entre las marcas fiduciales (5 , 7) y (6 , 8), miden 22.40 cm respectivamente;en tal sentido, cálcule:

  1. La distancia fiducial entre marca (1, 2) , (2,3) y el acimut entre las marcas opuestas extremas.

  2. El ángulo de distorsión total en grados sexagesimales.

  3. Las coordenadas del punto principal,

  4. La coordenada fiducial del punto principal y el punto p1.

  5. La coordenada fiducial en el eje “x” y “y” del punto p1 y la coordenada corregida

Proceso de organización de los datos y cálculo el factor de escala.

p <- c(1,2,3,4,5,6,7,8, "p")
cx <- c(0.2203891,0.0083581,0.0088878,0.2209024,0.1143544,0.0026287,0.1149132,0.2266391, 0.21469)
cx
## [1] 0.2203891 0.0083581 0.0088878 0.2209024 0.1143544 0.0026287 0.1149132
## [8] 0.2266391 0.2146900
cy <- c(0.0073742,0.0079342,0.2199374,0.2193982, 0.0016628,0.1139587, 0.2256663, 0.1133667,0.19731)

d<-data.frame(p,cx,cy)

# Mostrando la distribución de los puntos 
plot(d$cx,d$cy)

d
##   p        cx        cy
## 1 1 0.2203891 0.0073742
## 2 2 0.0083581 0.0079342
## 3 3 0.0088878 0.2199374
## 4 4 0.2209024 0.2193982
## 5 5 0.1143544 0.0016628
## 6 6 0.0026287 0.1139587
## 7 7 0.1149132 0.2256663
## 8 8 0.2266391 0.1133667
## 9 p 0.2146900 0.1973100
d[6,2]
## [1] 0.0026287
# Cálculo de factor de escala a partir de los puntos  de la distancia entre los puntos 
#(5 , 7) y (6 , 8) equivalente a 22.40 cm 


d57<-function(x1=d[5,2],y1=d[5,3],x2=d[7,2],y2=d[7,3]){
  d<- sqrt((x1-x2)^2+(y1-y2)^2)
  return(d)
}
d57()
## [1] 0.2240042
 # Hallando el factor de escala. 
Ey = 22.40/d57()
Ey
## [1] 99.99813
d68 <-function(x1=d[6,2],y1=d[6,3],x2=d[8,2],y2=d[8,3]){
  d<- sqrt((x1-x2)^2+(y1-y2)^2)
  return(d)
}
d68()
## [1] 0.2240112
# Hallando el factor de escala. 
Ex = 22.40/d68()
Ex
## [1] 99.99501

A) Cálculo de la distancia y el acimut entre las marcas opuestas extremas.

Cálculo de distancia entre las marcas fiduciales opuestas.

d
##   p        cx        cy
## 1 1 0.2203891 0.0073742
## 2 2 0.0083581 0.0079342
## 3 3 0.0088878 0.2199374
## 4 4 0.2209024 0.2193982
## 5 5 0.1143544 0.0016628
## 6 6 0.0026287 0.1139587
## 7 7 0.1149132 0.2256663
## 8 8 0.2266391 0.1133667
## 9 p 0.2146900 0.1973100
d[1,3]
## [1] 0.0073742
#  En el eje X 
d12<-function(x1=d[1,2],y1=d[1,3],x2=d[2,2],y2=d[2,3]){
  d<- sqrt((x1-x2)^2+(y1-y2)^2)
  return(d)
}
d12()
## [1] 0.2120317
# Multiplicando por el factor de escala en el eje "x"
d12()*Ex
## [1] 21.20212

En el eje Y

d23<-function(x1=d[2,2],y1=d[2,3],x2=d[3,2],y2=d[3,3]){
  d<- sqrt((x1-x2)^2+(y1-y2)^2)
  return(d)
}
d23()
## [1] 0.2120039
# Multiplicando por el factor de escala en el eje "y"
d23()*Ey
## [1] 21.19999

Hallando los valores de acimut entre la marca 1 y 2

a12<-function(x1=d[1,2],y1=d[1,3],x2=d[2,2],y2=d[2,3]){
  a <- atan((x1-x2)/(y1-y2))*(180/pi)
  return(a)
}
a12()
## [1] -89.84868

Hallando los valores de acimut entre la marca 2 y 3

a23<-function(x1=d[2,2],y1=d[2,3],x2=d[3,2],y2=d[3,3]){
  a <- atan((x1-x2)/(y1-y2))*(180/pi)
  return(a)
}
a23()
## [1] 0.1431559

b) Cálculo del ángulo de distorsión total en grados sexagesimales.

Los rayos en el eje “x” y eje “y” deben deben sumar 90 grados sexagesimales, los valores valores de sumatoria de valor absoluto de los acimuts deben sumar igual o próximo a 90 grados y la diferencia de noventa grados con la sumatoria de los acimuts van a generar un delta, y el valor de delta es el ángulo de distorsión total.

Θ = 90-(abs(a12())+abs(a23()))
Θ
## [1] 0.008168951

c) Cálculo de las coordenadas del punto principal

# El valor de la coordenada del punto principal en el eje "x" y "y"
d
##   p        cx        cy
## 1 1 0.2203891 0.0073742
## 2 2 0.0083581 0.0079342
## 3 3 0.0088878 0.2199374
## 4 4 0.2209024 0.2193982
## 5 5 0.1143544 0.0016628
## 6 6 0.0026287 0.1139587
## 7 7 0.1149132 0.2256663
## 8 8 0.2266391 0.1133667
## 9 p 0.2146900 0.1973100
cpcx <-(sum(d$cx)-d[9,2])/8
cpcx
## [1] 0.1146341
cpcy <- (sum(d$cy)-d[9,3])/8
cpcx
## [1] 0.1146341

d) Cálculo de la coordenada fiducial en el eje “x” y “y” del punto p1 y la coordenada corregida.

# d) Cálculo de la distancia  fiducial en el eje "x" y "y" del punto p1.
d[9,2]
## [1] 0.21469
dx <- (d[9,2]- cpcx)*Ex
dx
## [1] 10.00509
dy <- (d[9,3]- cpcx)*Ey
dy
## [1] 8.267435
# Para calcular la coordenada corregida aplicamos  la rotación matricial afín

m <- function(x=dx,y=dy, Θ = 90-(abs(a12())+abs(a23()))){  
m <- matrix(c(1,sin(Θ*pi/180),0, cos(Θ*pi/180) ),ncol = 2,byrow = TRUE)
m1<- matrix(c(x,y),ncol = 1, byrow = TRUE)
m2 <-m%*%m1 
return(m2)  
}
m()
##           [,1]
## [1,] 10.006269
## [2,]  8.267435

Bibliografía