org.gvsig.lidar
===============

org.gvsig.lidar es un proveedor de datos para leer y escribir ficheros LAS en
gvSIG, siguiendo la especificación de LAS:
https://www.asprs.org/committee-general/laser-las-file-format-exchange-activities.html

El plugin está diseñado para funciontar en gvSIG 2.2 y 2.3. Requiere que gvSIG
se ejecute con una máquina virtual Java versión 8.0 o superior, ya que las
librerías que utiliza requieren Java 8.0.

Los ficheros LAS están diseñados para almacenar nubes de puntos 3D capturados
usando sensores LIDAR. Poseen un conjunto de campos obligatorios (fijos) y
otros opcionales que dependen de formato de datos de punto que se especifique
en la cabecera del fichero LAS.

Los siguientes campos obligatorios se exponen como campos de capa por el
proveedor DAL:
- CLASSIFICATION (clasificación de coberturas del suelo)
- POINTX (coordenada x del punto)
- POINTY (coordenada y del punto)
- POINTZ (coordenada z del punto, útil para simbolizar elevaciones del terreno)
- INTENSITY (intensidad)
- RETURNNUM (número de retorno del punto)
- NUMBEROFRETURNS (número de retornos para este pulso láser)

Los siguientes campos opcionales se exponen como campos de capa por el
proveedor DAL cuando están disponibles en el fichero LAS:
- COLOR (color del punto, expresado como un entero "long" de Java que
  contiene el valor RGB)
- TIME (tiempo absoluto de captura, expresado tal como genera Data.getTime())
- WEEKTIME (tiempo relativo de captura, expresado como tiempo GPS semanal)

org.gvsig.lidar proporciona 2 drivers LAS diferentes, basados en 2 librerías
diferentes:
- El proveedor basado en JGrasstools es un proveedor de lectura/escritura.
  Utiliza la librería basada en C libLAS si está disponible en el "library
  path" nativo, y utiliza una implementación en Java puro si libLAS no está
  disponible o no se ha cargado correctamente. Nótese que sólo se ha probado
  la implementación basada en Java.
- El proveedor basado en Whitebox es un driver de sólo lectura basado en Java
  puro. Actualmente ofrece mejor rendimiento que la implementación Java de
  JGrasstools.

Ambos drivers incluyen 2 parámetros de "aclarado" (simplificación), que
permiten leer un subconjunto del total de puntos disponibles en el fichero
LAS:
- thinningDivisor: lee 1 de cada n puntos (1/), por ejemplo thinningDivisor=10
  carga el 10% del total de puntos disponibles
- thinningResolution: Carga aproximadamente n puntos por unidad cuadrada de
  la capa; por ejemplo, thinningResolution=0.0001 carga 0.0001 puntos/m2
  (asumiendo que las unidades de la proyección de la capa de ejemplo son
  metros), o lo que es lo mismo, 100 puntos/km2

Nótese que el parámetro thinningDivisor no tiene efecto cuando
el parámetro thinningResolution es > 0.

El aclarado permite dibujar rápidamente ficheros enormes a pequeñas escalas
(en las que no se requiere un nivel de detalle tan elevado como el que
provee el fichero).

