archeoViz. Visualización, exploración y comunicación web de datos espaciales arqueológicos

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

archeoViz es una aplicación empaquetada de R Shiny para la visualización, exploración y comunicación web de datos espaciales arqueológicos. Incluye visualizaciones 3D y 2D interactivas, puede generar secciones transversales y mapas de los restos, y mostrar una línea de tiempo interactiva del trabajo en un sitio. Puede tambien ejecutar estadísticas espaciales básicas (casco convexo, superficies de regresión, estimación de densidad de kernel 2D), así como exportar datos a otras aplicaciones en línea para realizar métodos más complejos. archeoViz se puede usar localmente o implementar en un servidor, ya sea permitiendo que el usuario cargue datos a través de la interfaz o ejecutando la aplicación con un conjunto de datos específico. La interfaz de la aplicación está disponible en alemán, español, italiano, inglés, francés, portugués, y rumano. Página web: https://archeoviz.hypotheses.org.

Instalación

archeoViz se puede utilizar de dos maneras:

Uso local

El paquete se puede instalar desde CRAN con:

install.packages("archeoViz")

La versión de desarrollo está disponible en GitHub y se puede instalar con:

# install.packages("devtools")
devtools::install_github("sebastien-plutniak/archeoviz")

Luego, cargue el paquete e inicie la aplicación con:

library(archeoViz)
archeoViz()

Uso distante

Para implementar archeoViz en su servidor Shiny, primero descargue y descomprima el paquete:

# configure el directorio de trabajo en su servidor Shiny:
setwd(dir = "/some/path/")
# descargar el package:
download.file(url = "https://github.com/sebastien-plutniak/archeoviz/archive/master.zip",
              destfile = "archeoviz.zip")
# unzip:
unzip(zipfile = "archeoviz.zip")

Luego, abre https://<your-shiny-server>/archeoviz-main.

Para configurar la aplicación con tus datos y preferencias, edita el archivo app.R, ubicado en la raíz del directorio:

archeoViz(objects.df = NULL,   # data.frame con datos sobre los objetos
          refits.df = NULL,    # data.frame opcional para reinstalar datos
          timeline.df = NULL,  # data.frame opcional para la cronología de excavación
          default.group =NULL, # méthode de groupement des données,
                               # par couche ("by.layer") ou "by.variable"
          title = NULL,        # titulo del sitio / data set
          home.text = NULL,    # Contenido HTML para mostrar en la página de inicio
          lang = "fr"          # lenguaje de interfaz ("en": Inglés, "fr": Francés, "it": Italiano, "pt": Portugués, "es": Español)
          set.theme = "cosmo") # tema gráfico para la interfaz Shiny

Los valores posibles para el parámetro set.theme se ilustran en esta página. El idioma de la aplicación se puede configurar con el parámetro lang.

Demostración

Las instancias de demostración de la aplicación se implementan en el servidor Huma Num Shiny:

Los casos de uso reales se presentan en el archeoViz Portal.

Recomendaciones comunitarias

Reportar errores

Si encuentra un error, complete un issue con todos los detalles necesarios para reproducirlo.

Suggerir cambios

Sugerencias de cambios a archeoViz son bienvenidas. Estas solicitudes pueden referirse a funciones adicionales, cambios en la documentación, ejemplos adicionales, nuevas características, etc. Se puede hacer llenando un issue y, aún mejor, usando un pull requests y el modelo de Fork and Pull de GitHub.

Traducción

Se presta especial atención al multilingüismo. La interfaz de la aplicación está disponible en varios idiomas, y se agradecería su traducción a otros idiomas. Para ello, edite este archivo y envíe una pull request.

Uso

Teniendo restos arqueológicos de un sitio determinado, archeoViz está diseñado para reducir las barreras técnicas para cumplir tres objetivos:

Además, archeoViz es un recurso pedagógico adecuado para enseñar análisis espacial en arqueología, estructuración de datos, ciencia abierta y flujo de trabajo reproducible.

N.B.: en consecuencia, archeoViz no pretende reemplazar herramientas de análisis más sofisticadas (por ejemplo, GIS, paquetes estadísticos, etc.)

Información espacial en archeoViz

Los arqueólogos registran la ubicación de los objetos arqueológicos en diferentes escalas y granularidades. En consecuencia, utilizan diferentes conceptos geométricos para representar la ubicación.

Puntos, ubicación exacta: objetos trazados

El uso de coordenadas de cuadrícula o “estación total” electrónica permite registrar la ubicación individual de los objetos en el campo. En ese caso, la ubicación se representa como puntos en archeoViz (tripletes de coordenadas x, y, z).

Puntos, ubicación vaga: niveles arbitrários, baldes, objetos tamizados y errores de registro

Sin embargo, también es común que las coordenadas x, y, z, por objeto no estén disponibles, por diferentes motivos debido a:

En todos estos casos, tenemos que lidiar con la ubicación imprecisa, cuando los objetos no se pueden ubicar como puntos sino que se encuentran en algún lugar entre rangos de coordenadas. La ubicación imprecisa puede afectar a una, dos o tres dimensiones espaciales (las coordenadas x, y, z, respectivamente).

Esta función también puede utilizarse para tener en cuenta la imprecisión de los instrumentos topográficos.

Líneas

Las líneas son geometrías útiles para representar relaciones. En arqueología, pueden ser relaciones de remontajes entre fragmentos de objetos, orientación (medición de fábrica), etc. Las líneas se generan a partir de datos cargados como datos de reensamblaje, ya sea desde la pestaña “Datos” o utilizando el parámetro refits.df en la función archeoViz().

Superficies

Las superficies son geometrías útiles para representar niveles del terreno, zanjas, fosos, etc. En archeoViz, esto puede conseguirse definiendo un subconjunto de puntos que resuman la superficie deseada y activando después la visualización del casco convexo de este subconjunto.

Remontajes y medición de fábrica

Remontajes

Los remontajes suelen ser registrados por los arqueólogos de dos maneras:

  1. por conjuntos de objetos de remontajes: usando una tabla de dos columnas, donde una fila corresponde a un objeto. La primera columna almacena la identificación única del objeto y la segunda columna almacena la identificación del conjunto de objetos al que pertenece este objeto.
  2. reensamblando relaciones: usando una tabla de dos columnas, donde una fila corresponde a una relación. La primera columna almacena la identificación única del primer objeto y la segunda columna almacena la identificación única del segundo objeto.

Aunque la segunda estructura de datos es más precisa, la primera se usa con más frecuencia.

archeoViz procesa y representa las dos estructuras de datos de dos maneras:

Medición de fábrica

Hasta ahora archeoViz no maneja correctamente las mediciones de fábrica. Sin embargo, el proceso utilizado para representar remontajes también se puede adaptar y utilizar para representar las mediciones de fábrica. Esto requiere distorsionar la estructura de datos de la siguiente manera:

Vea un ejemplo de este método aquí.

Formato de datos

Se pueden cargar tres tipos de datos en archeoViz:

Formatear datos

Las tablas deben ser archivos CSV con la primera fila que contiene las etiquetas de las columnas. Se permiten contenidos en HTML. Esto hace posible, en particular, agregar enlaces a recursos externos (por ejemplo, a identificadores permanentes de objetos en otras bases de datos, o a identificadores de conceptos en ontologías / tesauros estándar, etc.).

El formateo de sus datos se puede hacer:

Tabla de objetos

Una fila describe un solo objeto con los siguientes campos obligatorios:

Además, los campos opcionales son posibles, incluidos:

Las etiquetas de los cuadrados de la cuadrícula:

Tabla de remontajes

Se puede cargar una tabla de datos con dos columnas para reajustar los datos (formato CSV). Cada fila debe contener los identificadores únicos de dos objetos de reacondicionamiento (correspondientes a los valores de la columna id en la tabla de objetos).

Tabla cronológica

Se puede cargar una tabla (formato CSV) sobre el historial de excavaciones. La fila indica el año en que se excavó o midió cada cuadrado de la cuadrícula del sitio. Esta tabla debe incluir las siguientes variables:

Dibujo de fondo

En las pestañas “3D” y “Mapa” se puede mostrar un dibujo de fondo. Esto puede utilizarse, por ejemplo, para mostrar un plano del sitio como fondo de una nube de puntos. Esta función requiere una tabla de datos en la que cada línea contenga las coordenadas X e Y de los puntos que se utilizarán para el dibujo. Tenga en cuenta que las líneas se dibujarán en el orden de los puntos de la tabla. El sistema de coordenadas utilizado debe ser el mismo que el utilizado para los objetos. Para dibujar varias líneas, se requiere una columna adicional (titulada “group”), que debe indicar para cada punto el identificador único de la línea a la que pertenece el punto. El conjunto de datos debe cargarse utilizando el parámetro background.map.

Unidades

Por defecto, todas las distancias en archeoViz están en centímetros. Sin embargo, es posible especificar otra unidad dando uno de los siguientes valores al parámetro unit: “cm”, “m”, “km”. Este parámetro determina el contenido de la leyenda relativa al tamaño de los cuadrados de la cuadrícula.

Cargar datos

Hay cuatro formas de ingresar datos en archeoViz:

  1. cargar tablas de datos a través de la pestaña “Cargar datos”,
  2. cargar tablas de datos a través de los parámetros de la función archeoViz, en la interfaz R;
  3. cargar tablas de datos a través de parámetros de URL, cuando se usa una instancia en línea de archeoViz.
  4. generar datos aleatorios en la pestaña “Cargar datos”;

A través de la interfaz de la aplicación

Los tres tipos de tablas se pueden cargar en la pestaña “Cargar datos”. El separador CSV (uno de: coma, punto y coma, tabulación) y el carácter utilizado para los puntos decimales (punto o coma).

A través de los parámetros de la función R

La función de inicio de archeoViz (archeoViz()) se puede ejecutar sin parámetros

archeoViz()

o usando los parámetros objects.df, refits.df o timeline.df para ingresar datos.marcos sobre los objetos arqueológicos , las relaciones de remontajes entre estos objetos y la cronología de la excavación, respectivamente.

archeoViz(objects.df = NULL,  # data.frame con datos sobre los objetos
          refits.df = NULL,   # data.frame para reacondicionar objetos
          timeline.df = NULL) # data.frame opcional para la cronología de excavación

A través de parámetros de URL

La URL de una instancia en línea de archeoViz puede incluir los parámetros:

cuyos valores deben ser la URL de un archivo CSV respetando el formato archeoViz descrito anteriormente. Por ejemplo: https://analytics.huma-num.fr/archeoviz/fr/?objects.df=https://zenodo.org/record/8003880/files/bilzingsleben.csv

Generando Datos Aleatorios

El uso de datos generados aleatoriamente es posible con fines de demostración. Para activar esta función, configure el control deslizante en “Cargar datos” a un valor superior a 0 (establecer el valor nuevamente en 0 desactiva la función). Se genera un conjunto de datos de “objetos”, un conjunto de datos de “remontajes” y un conjunto de datos de “cronología”, lo que permite probar todas las funcionalidades de archeoViz.

Girar los puntos

Puede cambiar la orientación de los puntos en planta. En la pestaña “Datos”, seleccione un valor (en grados) y confírmelo haciendo clic en el botón “Validar la selección”.

Configuración secundaria de datos

Una vez que se cargan los datos, se puede realizar una subselección de los datos en el menú del lado izquierdo. La agrupación se puede realizar cruzando los siguientes parámetros: el modo de ubicación, las capas y la categoría del objeto.

Por Modo de ubicación

Si todos los objetos tienen una ubicación exacta o una ubicación vaga, no se propone ninguna opción. Sin embargo, si el conjunto de datos incluye una ubicación tanto exacta como imprecisa, es posible seleccionar solo una de estas opciones o ambas.

Por capa o categoría de objeto

Los datos se pueden agrupar de dos maneras: ya sea según su capa o según la variable “object_” seleccionada. Esta opción determina los colores de los puntos en los gráficos 3D y 2D y cómo agrupar los puntos al calcular cascos convexos y superficies de regresión 3D. Los subconjuntos se pueden definir por categorías de objetos, utilizando los campos “variable” y “valures”. Una vez que se selecciona uno de los “object_type” (u otras posibles variables “object_”), sus valores aparecen a continuación y se pueden seleccionar usando las casillas de verificación. La selección debe validarse haciendo clic en el botón “Validar”. Esta selección determina los datos que se mostrarán en los gráficos y tablas.

Visualización interactiva

Características generales

Los gráficos en las pestañas “Gráfico 3D”, “Mapa”, “Sección X” y “Sección Y” se generan utilizando plotly. Todos los gráficos son dinámicos e incluyen una barra de menú encima del gráfico con varias opciones (generar un archivo de imagen, hacer zoom, mover la vista, etc.). Consulte los detalles en el sitio web plotly.

Al hacer clic en el elemento de una leyenda, se modifica la visualización:

Esta función permite elegir qué capas se muestran. Además, se puede establecer el tamaño de los puntos y si se deben representar o no las relaciones de reposición.

Finalmente, al hacer clic en un punto, se muestra información sobre ese punto en la tabla debajo del gráfico.

Visualización de la incertidumbre espacial

En archeoViz, se hace una distinción entre ubicación exacta (dada como coordenadas x, y, z) y ubicaciones vagas (dada como rangos de coordenadas). Se pueden mostrar ambos tipos de ubicaciones. La incertidumbre de las ubicaciones vagas se puede visualizar representando objetos no como puntos sino como líneas, planos y volúmenes (si se dan rangos de coordenadas para una, dos o tres dimensiones espaciales, respectivamente). Tenga en cuenta que esta función consume muchos recursos y su uso con demasiados datos puede ralentizar significativamente la aplicación.

Salidas gráficas

Se pueden generar varios resultados gráficos enarcheoViz.

Estadísticas espaciales

archeoViz incluye algunas funcionalidades de análisis espacial, destinadas a un uso básico y exploratorio.

Superficies de regresión

En la pestaña “Gráfico 3D“, al hacer clic en “Calcular superficies” y “Validar” se muestra la superficie de regresión asociada con cada capa (con al menos 100 puntos). Las superficies se calculan utilizando el modelo aditivo generalizado implementado en el paquete mgcv.

Cascos convexos

En la pestaña “Visualización 3D“, los cascos convexos se muestran:

  1. marcando la casilla “cascos convexos”,
  2. seleccionando, en el menú que aparece, los subconjuntos de puntos para los que deben calcularse los cascos,
  3. pulsando “Validar”.

El casco convexo asociado con cada capa (con al menos 20 puntos) se muestran. Los cascos convexos se calculan usando el paquetecxhull.

densidad kernel 2D

En la pestaña “Mapa“, al marcar la casilla “Calcular densidad” y hacer clic en “Validar” se genera un mapa con líneas de contorno que muestran la densidad de los puntos. La densidad se puede calcular para todos los puntos juntos o por capa (con al menos 30 puntos). La densidad del núcleo 2D se calcula con la función kde2d del paquete MASS (a través de ggplot2).

Reproducibilidad

archeoViz es, por definición, una aplicación interactiva. Sin embargo, varias características garantizan la reproducibilidad y comunicabilidad del resultado de las interacciones con la aplicación.

Exportaciones desde y hacia aplicaciones de terceros

archeoViz fue diseñado como uno de los componentes básicos de un ecosistema digital descentralizado para datos y análisis arqueológicos. En esta perspectiva, las características y funciones se distribuyen en múltiples aplicaciones interconectadas, en lugar de concentrarse en unos pocos sistemas. En consecuencia, los datos se pueden exportar e importar entre archeoViz y otras aplicaciones basadas en la web. Tenga en cuenta que, hasta ahora, las funcionalidades de exportación solo están disponibles cuando se utilizan instancias archeoViz en línea.

Exportar desde archeoViz

Desde la pestaña “Estadísticas” de archeoViz, es posible exportar datos a otras aplicaciones online. La posibilidad de realizar determinadas exportaciones está condicionada al tipo de datos o a la presencia de un número mínimo de valores.

archeofrag es un paquete R y una aplicación web para evaluar y evaluar las distinciones entre unidades espaciales arqueológicas (por ejemplo, capas) basado en el análisis de las relaciones de remontajes entre fragmentos de objetos. La versión web de la aplicación incluye métodos para medir la cohesión y la mezcla de unidades espaciales y compararlas con datos simulados. Si se inicia una instancia de archeoViz con datos de remontaje, estos datos se pueden analizar con archeofrag. Cf. este ejemplo.

El Seriograph es una aplicación web (parte del SPARTAAS) collection) para visualizar cambios en la distribución cuantitativa de tipos de artefactos en series ordenadas o desordenadas de unidades espaciales. La exportación a Seriograph sólo es posible desde instancias de archeoViz ejecutadas online cuyo conjunto de datos tenga (al menos) 2 valores diferentes para la variable layer y 2 valores diferentes para la variable seleccionada (object_type por defecto). Cf. este ejemplo.

Amado online es una aplicación online para analizar tablas de contingencia. Amado online permite reordenar filas y columnas manualmente y realizar seriaciones y clasificaciones automáticas. La exportación a Amado online sólo es posible desde instancias de archeoViz ejecutadas online cuyo conjunto de datos tenga (al menos) 2 valores diferentes para la variable layer y 2 valores diferentes para la variable seleccionada (object_type por defecto). Cf. este ejemplo.

explor es una aplicación R Shiny / paquete R para explorar interactivamente los resultados de análisis multidimensionales. La exportación a explor sólo es posible desde instancias de archeoViz ejecutadas online cuyo conjunto de datos tenga (al menos) 2 valores diferentes para la variable layer y 2 valores diferentes para la variable seleccionada (object_type por defecto). La versión de explor utilizada desde archeoViz es una adaptación de la aplicación original, limitada al análisis factorial de correspondencias. Cf. este ejemplo.

shinyHeatmaply es una aplicación R Shiny / paquete R para generar y explorar interactivamente mapas de calor (heatmaps). Plusieurs distances et méthodes de classifications peuvent être apploquées. Pueden aplicarse varias distancias y métodos de clasificación. La exportación a shinyHeatmaply sólo es posible desde instancias de archeoViz ejecutadas online cuyo conjunto de datos tenga (al menos) 2 valores diferentes para la variable layer y 2 valores diferentes para la variable seleccionada (object_type por defecto). La versión de shinyHeatmaply utilizada desde archeoViz es una adaptación de la aplicación original. Cf. este ejemplo.

Importar a archeoViz

SEAHORS es una aplicación web y paquete R para visualizar la distribución espacial de restos arqueológicos. Como se mencionó, SEAHORS se puede usar para importar, remodelar y enviar un conjunto de datos a una instancia en línea de la aplicación archeoViz.

Parámetros avanzados

La función archeoViz() se puede configurar con múltiples parámetros opcionales, relacionados con:

archeoViz(objects.df=NULL, refits.df=NULL, timeline.df=NULL,
          title=NULL, home.text=NULL, lang="en", set.theme="cosmo",
          square.size = 100, unit = "cm", rotation = 0, 
          grid.orientation = NULL, background.map = NULL,
          reverse.axis.values = NULL, reverse.square.names = NULL,
          add.x.square.labels = NULL, add.y.square.labels = NULL,
          class.variable = NULL, class.values = NULL,
          default.group = "by.layer", location.mode = NULL,
          map.z.val = NULL, map.density = "no", map.refits = NULL,
          plot3d.ratio = 1, plot3d.hulls = FALSE, hulls.class.values = NULL,
          plot3d.surfaces = NULL, plot3d.refits = NULL, point.size = 2,
          sectionX.x.val = NULL, sectionX.y.val = NULL, sectionX.refits = NULL, 
          sectionY.x.val = NULL, sectionY.y.val = NULL, sectionY.refits = NULL,
          camera.center = c(0, 0, 0), camera.eye = c(1.25, 1.25, 1.25),
          run.plots = FALSE, html.export = TRUE, table.export = TRUE
          )

Cuadrícula

archeoViz(square.size = 100, unit = "cm", rotation = 0, 
          grid.orientation = NULL, background.map = NULL,
          reverse.axis.values = NULL, reverse.square.names = NULL,
          add.x.square.labels = NULL, add.y.square.labels = NULL
          )

Preajuste de parámetros

archeoViz(class.variable = NULL, class.values = NULL,
          default.group = "by.layer", location.mode = NULL,
          map.z.val = NULL, map.density = "no", map.refits = NULL,
          plot3d.hulls = NULL, plot3d.surfaces = NULL, plot3d.refits = NULL,
          sectionX.x.val = NULL, sectionX.y.val = NULL, sectionX.refits = NULL, 
          sectionY.x.val = NULL, sectionY.y.val = NULL, sectionY.refits = NULL,
          camera.center = NULL, camera.eye = NULL
          )

Visualización de gráficos reactivos

archeoViz(run.plots = FALSE)

Controlar los formatos de exportación

Parámetros de URL

Una instancia de archeoViz implementada en línea en un servidor se puede configurar con parámetros de URL. Los parámetros admitidos incluyen:

(Los siguientes parámetros no son compatibles con la versión actual: map.z.val, sectionX.x.val, sectionX.y.val, sectionY.x.val, sectionY.y.val, point.size, lang, set.theme, camera.center, camera.eye, html.export, table.export.)

Los parámetros deben escribirse usando la sintaxis de URL (?param1=value&param2=value2) y tener el mismo tipo de valores que cuando se usan en la interfaz de R. Por ejemplo, la siguiente URL inicia una instancia de archeoViz utilizando el conjunto de datos Bilzingsleben:

https://analytics.huma-num.fr/archeoviz/en/?objects.df=https://zenodo.org/record/8003880/files/bilzingsleben.csv

Esta URL hace lo mismo, pero también incluye la tabla de reacondicionamiento (parámetro &refits.df=) y activa la visualización de las relaciones de reacondicionamiento en los gráficos 3D y de mapa:

https://analytics.huma-num.fr/archeoviz/en/?map.refits=TRUE&plot3d.refits=TRUE&objects.df=https://zenodo.org/record/8003880/files/bilzingsleben.csv&refits.df=https://zenodo.org/record/8003880/files/bilzingsleben-antlers-refits.csv

La siguiente URL inicia el conjunto de datos de Bilzingsleben, preconfigurando la aplicación para:

  1. agrupa los puntos por variable (parámetro default.group, con valor by.variable en lugar de by.layer)
  2. selecciona solo las “Astas” (parámetro class.values)
  3. redefine el tamaño de la cuadrícula (parámetro square.size, 500 en lugar del valor predeterminado de 100)
  4. habilitar la visualización inmediata de los gráficos (parámetro run.plots)
  5. modifica el título de la página (parámetro title)
  6. modifica el contenido de la página de inicio con contenidos HTML básicos (parámetro home.txt)

https://analytics.huma-num.fr/archeoviz/en/?default.group=by.variable&class.values=Antler&square.size=500&run.plots=TRUE&title=Antlers%20at%20Bilzingsleben&home.text=Many%20antlers&objects.df=https://zenodo.org/record/8003880/files/bilzingsleben.csv

Tenga en cuenta que los parámetros add.x.square.labels, add.y.square.labels, location.mode, et class.values, que aceptan valores simples o múltiples en la interfaz de R (p. ej., c(“value1”, “value2”)) solo aceptan un valor cuando se establecen como parámetros de URL (esta es una restricción debido a la sintaxis de la URL).

Agradecimientos

La aplicación y el paquete archeoViz son desarrollados y mantenidos por Sébastien Plutniak. Arthur Coulon, Solène Denis, Olivier Marlet y Thomas Perrin probaron y apoyaron el proyecto en su etapa inicial. Renata Araujo, Laura Coltofean, Sara Giardino, Julian Laabs, y Nicolas Delsol tradujeron la aplicación al portugués, rumano, italiano, alemán, y español respectivamente.

Referencias

Software

Articulos

Presentationes

Sitios web



Try the archeoViz package in your browser

Any scripts or data that you put into this service are public.

archeoViz documentation built on June 22, 2024, 10:04 a.m.