jueves, 23 de octubre de 2008

El uso de las bases de datos...La apología

Tuve la oportunidad de hacer y calcular varios inventarios forestales y procesar datos de campo desde hace unos 15 años. Desde el inicio del uso de las planillas de cálculo (Lotus 123, Quattro pro, Excel 4, etc), cuando las bases de datos eran para programadores y sistemistas , comencé a utilizarlas para dichos procesamientos de datos, en realidad para todo. Copiar y pegar fórmulas, archivos que se hacen largos y complicados, fórmulas encriptadas, tareas repetitivas eran cuotas con las cuales iba pagando la ignorancia, ya que en nuestra carrera fuimos aprendiendo a soslayar la importancia de hacer trabajar a las máquinas por nosotros hablándoles un lenguaje que entendieran.
Cuando comencé a intuir la utilidad de las bases de datos (año 2001) , pensé que access era una solución, con gran aplicación contruí una base de datos referencial con hermosas y cómodas interfaces gráficas para cargar datos. Cuando quise comenzar a manipular los datos cargados para obtener la información que necesitaba, me dí cuenta lo bien documentado que está el lenguaje SQL de Microsoft Access, por supuesto, igual que el resto de los productos de esa compañía, por lo cual debí exportar las tablas acces a excel y terminar de calcular con plantillas, toda una lección de informática.
Hoy en día, MySQL, PostgreSQL, SQLite son maravillas que nos ponen el poder del cálculo a nuestro alcance, por supuesto un poco nos tenemos que mover pero están a mano.
Calcular un inventario de 90 parcelas, con carga de datos, configuración de la base de datos, programación de los scripts a la vez que iba APRENDIENDO TODO, lo hicimos en una semana. Creo que sabrán apreciar, la ventaja al considerar que la misma estructura y scripts y todo, excepto los datos sirven para otro inventario, mientras que difícilmente esto mismo pueda hacerse con planillas de cálculo y que realmente funcione, menos aún en un tiempo similar.
Creo que cualquiera puede bajar e instalar el MySQL(www.mysql.org), e iniciar un servidor local, los instalables (especialmente de windows ) son muy buenos si se pierden revisen la página que seguramente encontrarán info útil.
La próxima comienzo a pasar trucos y código...

sábado, 18 de octubre de 2008

El GPS en los Inventarios Forestales

===================================================
NOTAS:
Desde notas pasadas vengo incorporando algunos términos de programación que progresivamente iré aclarando. La idea fundamental de estas notas es mostrar que con instrucciones sencillas (que aparecen como complicadas) se pueden resolver problemas que muchos sistemas (de los más caros y estilizados) no responden.
------------------------------------
Desde ahora en adelante, los símbolos # serán utilizados para comentar código, ya que los textos precedidos por el mismo no son ejecutados en R.
Funciones: como muchos lenguajes de programación, el R nos permite crear funciones, que son algoritmos que pueden aceptar parámetros y devolver un resultado. En el ejemplo se define la función "achatar".
===================================================


Los GPS navegadores son una herramienta de utilidad indiscutible en inventarios forestales y prospecciones ambientales, sin embargo vienen siendo utilizados frecuentemente para medir superficies cuyos tamaños y formas hacen suponer errores relativos altos.
Con el código presentado en la entrada del "El R como herramienta de trabajo"
para la definición de las funciones de propagación de errores, y el ejemplo a continuación veremos cómo el error relativo en la estimación de superficies es función de la forma del polígono.

##
#creación de la matriz de vértices de ejemplo, representa un cuadrado de 10000 m*m.
cua1<-t(matrix(c(0,0,0,100,100,100,100,0,0,0),nrow=2))
rect1<-cua1

#definición de la función achatar que requiere de los parámetros v (matriz de #nx2 vértices) y coef (representa el coeficiente por el que se achatará el polígono). return(r) indica que el procedimineto devuelve como resultado lo que se haya definido como "r".

achatar<-function(v,coef){
r<-v;
r[,1]<-v[,1]*coef;
r[,2]<-v[,2]*(1/coef);
return (r)
}
#creamos, a partir del cuadrado original, rectángulos de la misma superficie pero achatos sucesivamente a la mitad
rect1<-achatar(cua1,2)
rect2<-achatar(rect1,2)
#Calculamos las superficies y errores asociados guardándolas en los objetos sc1,sr1 y sr2.
sc1<-Superficies(cua1,15)
sr1<-Superficies(rect1,15)
sr2<-Superficies(rect2,15)
#recuperamos los errores de estimación de superficies de los tres polígonos concatenándolos en un vector(para eso sirve "c()")
c(sc1$ErrorSup,sr1$ErrorSup,sr2$ErrorSup)
[1] 3380.828 6050.413 12006.326


[ERRORES MAXIMOS POSIBLES]
#OBSERVAMOS COMO EL ERROR DE ESTIMACION DE SUPERFICIE CRECE DE UN 34% AL 120%, SIEMPRE PARA POLÍGONOS DE LA MISMA SUPERFICIE.
CUIDADO CON LAS MEDICIONES DE SUPERFICIE CON GPS DE POLIGONOS MENORES A 4 ha, Y PARTICULARMENTE POLIGONOS CON RELACION SUP/PER BAJA.

Búsqueda personalizada