Skip To Content

Plantillas de salida en un recurso compartido de archivos de big data

Los recursos compartidos de archivos de big data se registran como un data store mediante ArcGIS Server Manager. En el recurso compartido de archivos de big data se describe el dataset de entrada mediante un manifiesto de recursos compartidos de archivos de big data, así como plantillas para volver a escribir los resultados en la ubicación del recurso compartido de archivos de big data. Cuando vuelve a escribir un resultado en un recurso compartido de archivos de big data, este se actualiza automáticamente para incluir el nuevo dataset de salida como dataset de entrada. Este tema describe el formateo de las plantillas de salida y sus valores posibles. Para obtener información general sobre recursos compartidos de archivos de big data y cómo funcionan los datasets de entrada, las plantillas de salida y los archivos de sugerencias, consulte Primeros pasos con recursos compartidos de archivos de big data.

Nota:

Este tema trata la edición de plantillas de salida. Para obtener información sobre cómo aplicar un archivo de sugerencias a los archivos delimitados, consulte Comprender el archivo de sugerencias.

Las plantillas de salida están formadas por una o varias plantillas. El número de plantillas depende de los tipos de archivos y el formato que desea utilizar para almacenar los resultados de salida. En el ejemplo siguiente, existen tres plantillas de salida:

"outputTemplates":[
  {.. template1 ..},
  {.. template2 ..},
  {.. template3 ..}
]

En cada plantilla, existen cinco objetos de nivel superior que pueden ser aplicables. De estos objetos, name, title y format son necesarios.

{
 "name": "ExampleTemplate", "title": "My Example Template", "format": {}, "geometry": {}, "time": {}
}

Nombre

El objeto name es necesario y define el nombre del dataset. El nombre debe ser único en el manifiesto y no puede incluir ningún carácter especial.

Título

El objeto title es obligatorio y define el título que se muestra al ejecutar una herramienta. El título debe ser único en el manifiesto y puede incluir espacios.

Formato

El objeto format es obligatorio y define el tipo de archivo de salida y su formato.

SintaxisEjemplo
"format" : {
 "type" :  "< delimited | shapefile | orc | parquet >",
 "extension" : "< csv | tsv | shp | orc | parquet >",
 "fieldDelimiter" : "< delimiter >",
 "recordTerminator: "< terminator >",
 "quoteChar":  "< character for quotes>",
 "delimited.write.header" :  < true | false >, 
 "encoding" : "< encoding format >",
 "dateFields" : "< date format >"
}

Ejemplo utilizando un shapefile:

"format" : {
 "type": "shapefile", "extension": "shp", "dateFields": "YYYY/MM/dd HH:mm:ss"
}

Ejemplo utilizando un archivo delimitado:

"format" : {
 "type": "delimited", "extension": "csv", "fieldDelimiter": ",", "recordTerminator": "\n",  "quoteChar" "\"",
 "hasHeaderRow": true, "encoding" : "UTF-8"
}

Ejemplo utilizando un archivo de parquet:

"format" : {
 "type": "parquet"
}

Ejemplo utilizando un archivo ORC:

"format" : {
 "type": "orc"
}

Descripción

  • type: una propiedad requerida que define el tipo de datos de salida. Puede ser delimited, shapefile, parquet o orc.
  • extension: una propiedad requerida que indica la extensión de archivo de los archivos delimitados.
  • fieldDelimiter: solo se utiliza y es necesario si type es delimited. Este campo representa qué es lo que separa a los campos en el archivo delimitado.
  • recordTerminator: siempre está definido como \n en Linux y \r\n en Windows. Si modifica esta opción, se seguirán utilizando esos valores predeterminados.
  • quoteChar: solo es necesario si type es delimited. El carácter indica cómo se especifican las comillas en el archivo delimitado.
  • delimited.write.header: solo es necesario si type es delimited. Esta propiedad especifica si la primera fila de un archivo delimitado contiene los nombres de campo.
  • encoding: siempre está definido como UTF-8. Si modifica esta opción, se seguirá utilizando el valor predeterminado.
  • dateFields: cómo se formatearán los campos del tipo date. Son los campos que no representan la hora de la entidad (instante o intervalo). Consulte formatos de tiempo para obtener más información sobre cómo formatear los campos de fecha.

La configuración de archivos delimitados no se puede crear a través de ArcGIS Server Manager. Para modificar la configuración de archivos delimitados, edite las plantillas yendo al Directorio de administrador de su GeoAnalytics Server y haga clic en datos > elementos > bigDataFileShares y en el recurso compartido de archivos de big data y, a continuación, haga clic en editar. Aplique los cambios y haga clic en actualizar.

Geometría

El objeto geometry es opcional. Si no se indica, el campo de geometría se escribirá en XYZ para los puntos almacenados en archivos delimitados, ORC y de parquet y se escribirá en WKT para las líneas y los polígonos de archivos delimitados, ORC y de parquet. En los shapefiles, los campos se escribirán en un campo Shape.

SintaxisEjemplo
"geometry" : {
 "spatialReference" : {
  "wkid": <wkidNum>,
  "latestwkid" : <latestWkidNum>
  },
 "encodings":[
 {
  "types" : ["< esriGeometryType >"],
  "fields" [
   {
    "name": "<fieldName1>",
    "formats": ["<fieldFormat1>"]
   },
   {
    "name": "<fieldName2>",
    "formats": ["<fieldFormat2>"]
   }
  },
 {...}
 ]
}

Ejemplo utilizando un archivo delimitado con valores x e y:

"geometry" : {
 "spatialReference" : {
  "wkid": 3857 }, "encodings": [{
		"types": ["esriGeometryPoint"],		"fields": [{
				"name": "XValue",				"formats": ["x"]			},			{
				"name": "YValue",				"formats": ["y"]			}
		]	},	{
		"types": ["esriGeometryPolyline",			"esriGeometryPolygon"
		],		"fields": [{
			"name": "geometry",			"formats": ["geojson"]		}]	}
]  
}

Ejemplo utilizando un archivo delimitado con valores x,y,z:

"geometry" : {
	"spatialReference": {
		"wkid": 4326	},	"encodings": [{
	 "types": ["esriGeometryPoint"],		"fields": [{
				"name": "Longitude",				"formats": ["x"]			},			{
				"name": "Latitude",				"formats": ["y"]			},			{
				"name": "Height",				"formats": ["z"]			}
		]	}]
}

Ejemplo utilizando un archivo .tsv:

"geometry" : {
	"spatialReference": {
		"wkid": 3857	},	"encodings": [{
	"types": ["esriGeometryPolygon", "esriGeometryPoint"],   "fields": [{
			"name": "Shapelocation",			"formats": ["WKT"]		}]	}]
}

Descripción

Nota:

La tabla anterior describe las opciones predeterminadas para el objeto geometry en función del tipo de geometría y archivo, si usted no las ha especificado. Las siguientes propiedades se enumeran como necesarias u opcionales, suponiendo que se utiliza una geometría:

  • spatialReference: una propiedad requerida que indica la referencia espacial para datasets de salida.
    • wkid: un campo que indica la referencia espacial, donde wkid o latestWkid es necesario para un dataset con una geometría.
    • latestWkid: un campo que indica la referencia espacial en una versión de software determinada, donde wkid o latestWkid es necesario para un dataset con geometría.
  • encodings: es necesaria. Esto especifica cómo codificar la geometría de salida. La propiedad está formada por dos partes: el tipo de geometría y los campos en los que se escribirá la geometría.
    • types: los tipos de geometría especificados en esta codificación. Entre las opciones se incluyen las siguientes:
      • esriGeometryPoint
      • esriGeometryPolyline
      • esriGeometryPolygon
    • fields: es necesaria. Esto especifica el name de uno o varios campos utilizados para almacenar resultados de geometría, así como los formats de los campos en los que se almacena la geometría.
      • name: una propiedad requerida para asignar un nombre al campo utilizado para la geometría del dataset de salida. Indica el nombre del campo utilizado para representar la geometría. Puede haber varias instancias de estos elementos.
      • formats: una propiedad requerida para datasets delimitados con una representación espacial. Indica el formato del campo utilizado para representar la geometría. Puede haber varios formatos. El campo de geometría de los shapefiles no se puede especificar. Son compatibles los siguientes tipos de formato:
        • WKT: el valor predeterminado para líneas y polígonos almacenados como archivos delimitados, ORC o de parquet.
        • GeoJSON
        • EsriJSON
        • X, Y, Z: el valor predeterminado para puntos almacenados como archivos delimitados, ORC o de parquet.
        • EsriShape: esta opción solo está disponible para los archivos ORC o de parquet.
        • WKB: esta opción solo está disponible para los archivos ORC o de parquet.

Time

El objeto time es opcional. Si no se especifica y los resultados no tienen la función de tiempo habilitada, se utilizará el valor predeterminado.

SintaxisEjemplo
"time" : {
 "timeReference" : {
  "timeZone" : "<timeZone >"
  },
 "encodings":[{
  "types" : ["< instant | interval >",]
  "fields": [
  {
   "name": "<fieldName1>",
   "formats": ["<fieldFormat1>"],
   "role": "< start | end >"
  }
 ]
}]
}

Ejemplo con un instante con varios formatos en los campos de tiempo:

"time": {
	"timeReference": {
		"timeZone": "UTC"
	},	"encodings": [{
		"types": ["instant"],		"fields": [{
			"name": "iso_time",			"formats": [				"yyyy-MM-dd HH:mm:ss",				"MM/dd/yyyy HH:mm"
			]		}]	}]
}

Ejemplo con un intervalo, con varios campos utilizados para startTime:

"time": {
	"timeReference": {
		"timeZone": "-0900"
	},	"encodings": [{
		"types": ["interval"],		"fields": [{
				"name": "time_start",				"formats": ["HH:mm:ss"],				"role": "start"
			},			{
				"name": "date_start",				"formats": ["yyyy-MM-dd"],				"role": "start"
			},			{
				"name": "datetime_ending",				"formats": ["yyyy-MM-dd HH:mm:ss"],				"role": "end"
			}
		]	},{
		"types": ["instant"],		"fields": [{
				"name": "time",				"formats": ["HH:mm:ss"],				"role": "start"
			},			{
				"name": "date",				"formats": ["yyyy-MM-dd"]			}
		]	}]
}

Descripción

Nota:

Dado que el objeto time es opcional, las siguientes propiedades se enumeran como necesarias u opcionales, suponiendo que se utiliza time:

  • encodings: es obligatorio si está formateando la fecha. Esto especifica cómo codificar la hora de salida. La propiedad está formada por dos partes: el tipo de hora y los campos en los que se escribirá la hora.
    • types: los tipos de geometría especificados en esta codificación. Entre las opciones se incluyen las siguientes:
      • Instant: para un único momento en el tiempo.
      • Interval: para un intervalo de tiempo representado con un tiempo inicial y final.
    • fields: es necesaria. Esto especifica el name de uno o varios campos utilizados para almacenar resultados de hora, así como los formats de los campos en los que se almacena la hora.
      • name: una propiedad requerida para asignar un nombre al campo utilizado para la hora del dataset de salida. Indica el nombre del campo utilizado para representar la hora. Puede haber varias instancias de estos elementos.
      • formats: un campo requerido que indica el formato del campo utilizado para representar el tiempo. Puede haber varios formatos para un único campo (como se muestra arriba). Puede haber varias instancias de este objeto. Para obtener más información sobre cómo se pueden formatear los campos, consulte Formatos de tiempo en un manifiesto de recursos compartidos de archivos de big data.
    • role: un campo obligatorio si timeType es interval. Puede representar el startTime o el endTime de un intervalo de tiempo.
  • timeReference: un campo requerido si el dataset tiene habilitada la función de tiempo y que indica la zona horaria (timeZone).
    • timeZone: un campo opcional de timeReference que indica el formato de la zona horaria de los datos. timeZone puede tener el siguiente formato:
      • Utilizando el nombre completo de la zona horaria: Pacific Standard Time
      • Utilizando la abreviatura de la zona horaria: PST
      • Utilizando el desplazamiento de zona horaria en horas: -0900