Skip To Content

大数据文件共享中的输出模板

注:

ArcGIS Enterprise 10.9.1 或更高版本中,建议您通过门户内容页面而非 ArcGIS Server Manager 添加或编辑大数据文件共享。 了解有关在门户中添加大数据文件共享的详细信息

大数据文件共享通过门户内容页面注册为数据存储。 大数据文件共享概述了使用大数据文件共享清单的一个或多个输入数据集,以及用于将结果写回大数据文件共享位置的模板。 将结果写回大数据文件共享时,大数据文件共享会自动更新以将新输出数据集作为输入数据集包括在内。 本主题将介绍输出模板的格式及其可能的值。 有关大数据文件共享以及输入数据集、输出模板和提示文件工作原理的概述,请参阅大数据文件共享入门

注:

本主题将介绍编辑输出模板。 要了解如何将提示文件应用于分隔的文件,请参阅提示文件

输出模板由一个或多个模板组成。 模板的数量取决于文件类型和要用于存储输出结果的格式。 在下面的示例中,有 3 个输出模板:

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

在每个模板中,有 5 个可能适用的顶级对象。 在这些对象中,nametitleformat 是必需项。

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

名称

需要 name 对象来定义数据集的名称。 该名称在清单内必须唯一,并且不能包含任何特殊字符。

标题

需要 title 对象来定义运行工具时显示的标题。 该标题在清单内必须唯一且可包含空格。

格式化

需要 format 对象来定义输出文件类型及其格式。

语法示例
"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 >"
}

使用 shapefile 的示例:

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

使用分隔的文件的示例:

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

使用 parquet 文件的示例:

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

使用 ORC 文件的示例:

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

描述

  • type - 用于定义输出数据类型的必要属性。 可以为 delimitedshapefileparquetorc
  • extension - 用于表示分隔文件扩展名的必要属性。
  • fieldDelimiter - 仅当 typedelimited 时需要使用此项。 此字段表示用于分隔分隔文件中的各个字段的内容。
  • recordTerminator - 此项在 Linux 上始终设置为 \n,在 Windows 上则始终设置为 \r\n。 即使修改此选项,仍使用这些默认值。
  • quoteChar - 仅当 typedelimited 时需要此项。 该字符表示如何在分隔文件中指定引号。
  • delimited.write.header - 仅当 typedelimited 时需要此项。 此属性用于指定分隔文件中的第一行是否为字段名称。
  • encoding - 此项始终设置为 UTF-8。 即使修改此选项,仍使用该默认值。
  • dateFields - 如何设置 date 类型字段的格式。 这些是不表示要素时间(时刻或间隔)的字段。 要了解有关设置日期字段格式的信息,请参阅时间格式

无法通过 ArcGIS Server Manager 创建分隔文件设置。 要修改分隔文件设置,请通过浏览至 GeoAnalytics Server 的管理员目录,单击数据 > 项目 > bigDataFileShares 和您的大数据文件共享并单击编辑来编辑模板。 执行更改,然后单击更新

几何

geometry 对象为可选项。 如果未提供,则存储在分隔、ORC 和 parquet 文件中的点对应的几何字段将以 XYZ 形式写入,而分隔、ORC 和 parquet 文件中的线和面将以 WKT 形式写入。 对于 shapefile,字段将以 shape 字段形式写入。

语法示例
"geometry" : {

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

使用具有 x 和 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"]
		}]
	}
]
  
}

使用具有 x、y 和 z 值的分隔文件的示例:

"geometry" : {

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

使用 .tsv 文件的示例:

"geometry" : {

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

描述

注:

上表概述了 geometry 对象基于几何和文件类型的默认选项(如未指定)。 将以下属性列为必需项或可选项(假定使用几何):

  • spatialReference - 用于表示输出数据集的空间参考的必要属性。
    • wkid - 用于表示空间参考的字段,其中 wkidlatestWkid 是包含几何的数据集的必需项。
    • latestWkid - 用于表示给定软件版本的空间参考的字段,其中 wkidlatestWkid 是包含几何的数据集的必需项。
  • encodings - 此为必需项。 此项指定了如何对输出几何进行编码。 该属性由两部分组成:几何类型和要写入几何的字段。
    • types - 此编码中指定的几何类型。 具体包括如下选项:
      • esriGeometryPoint
      • esriGeometryPolyline
      • esriGeometryPolygon
    • fields - 此为必需项。 此项指定了用于存储几何结果的一个或多个字段的 name,以及用来存储几何的字段的 formats
      • name - 命名用于输出数据集几何的字段的必需属性。 此项表示用于表示几何的字段名称。 此项可以有多个实例。
      • formats - 包含空间表示的分隔数据集的必要属性。 此项表示用于表示几何的字段格式。 此项可以有多种格式。 无法指定 shapefile 的几何字段。 支持的格式类型如下:
        • WKT - 以分隔、ORC 和 parquet 文件形式存储的线和面的默认值。
        • GeoJSON
        • EsriJSON
        • XYZ - 以分隔、ORC 和 parquet 文件形式存储的点的默认值。
        • EsriShape - 此选项仅适用于 ORC 和 parquet 文件。
        • WKB - 此选项仅适用于 ORC 和 parquet 文件。

时间

time 对象为可选项。 如果未指定且结果已启用时间,则将使用默认值。

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

在时间字段中使用具有多种格式的时刻的示例:

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

使用具有多个字段的间隔(用于 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"]
			}
		]
	}]
}

描述

注:

由于 time 对象是可选项,因此将以下属性列为必需项或可选项(假定使用 time):

  • encodings - 这是设置时间格式的必需项。 此项指定了如何对输出时间进行编码。 该属性由两部分组成:时间类型和将写入时间的字段。
    • types - 此编码中指定的几何类型。 具体包括如下选项:
      • Instant - 适用于单个时间点。
      • Interval - 适用于以开始和结束时间表示的时间间隔。
    • fields - 此为必需项。 此项指定了用于存储时间结果的一个或多个字段的 name,以及用来存储时间的字段的 formats
      • name - 命名用于输出数据集时间的字段的必需属性。 此项表示用于表示时间的字段名称。 此项可以有多个实例。
      • formats - 用于表示代表时间的字段格式的必填字段。 单个字段可能具有多种格式(如上所示)。 此对象可以有多个实例。 要了解如何格式化字段,请参阅时间格式
    • role - 当 timeTypeinterval 时需要此项。 它可以表示时间间隔的 startTimeendTime
  • timeReference - 如果数据集已启用时间表示时区 (timeZone),则此项为必填字段。
    • timeZone - 用于表示数据时区格式的 timeReference 的可选字段。 可将 timeZone 的格式设置如下:
      • 使用时区的全称:Pacific Standard Time
      • 使用时区的缩写:PST
      • 使用以小时表示的时区偏差:-0900