目前我正在尝试获得一个仅考虑堤坝后面区域的单面缓冲区。我有两个数据集,一个具有堤坝的特征(多边形),另一个具有河流/水的多边形。我试图通过创建两个距离函数并获取到堤坝的距离小于到水的区域来做到这一点。当我在第一个多边形上尝试它时,它似乎正在工作,但是,当我导出它时,我收到以下错误:

错误:无效的属性类型:属性joinedWaterFeature 的类型为Feature。 (错误代码:3)

buffer1000Date2209VersionSHPTEST

ID: FVSO4EQHD4A3WCDNM7GLIWJ4

Phase: Failed

Runtime: 5s (started 2022-09-26 10:51:31 +0800)

Attempted 1 time

Error: Invalid property type: Property joinedWaterFeature has type Feature. (Error code: 3)

我在这里创建了一个带有模拟数据集的可重现脚本,它得到了相同的错误:

https://code.earthengine.google.com/fa026bb693b2a3c34721a8b4d50679c2

代码:

var water = /* color: #d63000 */ee.Geometry.MultiPolygon([[[[4.862333298266703, 51.94077379951665],[4.862848282397563, 51.93897473727527],[4.877267838061625, 51.9368581010924],[4.884820938647563, 51.93791643166631],[4.897008896411235, 51.93982136378783],[4.910398483813578, 51.94172621502436],[4.920698166430766, 51.94363098537719],[4.927736282885844, 51.948815783784696],[4.926362991870219, 51.95008543896943],[4.92258644157725, 51.94807513499353],[4.9201831822999065, 51.945747302018326],[4.914003372729594, 51.94416007389877],[4.907308579028422, 51.94299607091323],[4.901472092212016, 51.942149504314884],[4.896322250903422, 51.94098544915475],[4.8885974889405315, 51.94066797432313],[4.882074356616313, 51.93960970865756],[4.874006271899516, 51.93950388071796],[4.866109848559672, 51.94035049724472]]],[[[4.956918716967875, 51.9608760567711],[4.956918716967875, 51.95928936408167],[4.964815140307719, 51.958760454038384],[4.97202491813975, 51.95960670711241],[4.978204727710063, 51.96489542690582],[4.981122971118266, 51.967433790768055],[4.986616135180766, 51.970923806344054],[4.991937637866313, 51.9744135501296],[4.990907669604594, 51.975682480485325],[4.982667923510844, 51.97113531370425],[4.977346420825297, 51.96627039184342],[4.971853256762797, 51.962674240594694],[4.967218399585063, 51.96119338856977],[4.95880699211436, 51.96077027900568],[4.9572620397217815, 51.96182804542794]]]]),dyke = /* color: #98ff00 */ee.Geometry.MultiPolygon([[[[4.866226996428997, 51.9429134223473],[4.866312827117474, 51.94132609394463],[4.876097525603802, 51.941273182030514],[4.883564795501263, 51.94132609394463],[4.892233695037396, 51.942278497726505],[4.897726859099896, 51.943336700435026],[4.9077690496516535, 51.94465941871544],[4.914292181975872, 51.94640534712053],[4.918326224334271, 51.94793959173555],[4.921416129119427, 51.95063761874887],[4.919184531219036, 51.95211881946101],[4.914549674041302, 51.95016150812951],[4.908884848601849, 51.94788668762252],[4.904164160735638, 51.9465640645146],[4.899014319427044, 51.94561175172512],[4.892834509856732, 51.944818142287914],[4.887856329925091, 51.94439487817979],[4.878414954192669, 51.94312506189043],[4.871119345672161, 51.94249014026531],[4.867428626067669, 51.942701781805575]]],[[[4.958323325164349, 51.96497147094154],[4.958323325164349, 51.96333203732279],[4.965189780242474, 51.96285606149207],[4.969395483977825, 51.96317337927413],[4.973000372893841, 51.96497147094154],[4.975489462859661, 51.9668752540859],[4.9790085210872, 51.969730777178945],[4.98227008724931, 51.972850492564255],[4.982613410003216, 51.97528266235366],[4.979952658660443, 51.97475394102141],[4.976605261809857, 51.97195161379573],[4.972914542205364, 51.96877895636417],[4.9709404363704035, 51.966663726618826],[4.968708838470013, 51.965024354898596],[4.960211600310833, 51.964759934489244],[4.959009970672161, 51.965341657330704]]]]),NetherlandsDot = /* color: #d63000 */ee.Geometry.Point([4.716401205112493, 52.41511927429774]),Location = /* color: #0b4a8b */ee.Geometry.Point([4.933398086998229, 51.9659069488746]);// 加载一个影像数据
var AHN = ee.Image('AHN/AHN2_05M_INT').select('elevation');Map.setCenter(4.933398086998229, 51.9659069488746, 13);var countryBoundaries = ee.FeatureCollection("FAO/GAUL/2015/level0");
var Netherlands = countryBoundaries.filterBounds(NetherlandsDot); // set area for the boundaries var maxDistanceFilter = ee.Filter.withinDistance(200, '.geo', null, '.geo', null, 10);// 定义连接。
var saveBestJoin = ee.Join.saveBest({matchKey: 'joinedWaterFeature',measureKey: 'distance'
});// 应用连接。
var keringenWaterJoin = saveBestJoin.apply(dyke, water, maxDistanceFilter);// 在每个障碍物周围建立一个缓冲区
var bufferSize = 1000; //  缓冲区尺寸,单位:米// // 使用每个堤坝周围的缓冲区来计算统计数据,并添加到该单元的特征中去
var statistics = function(feature){// 屏蔽除堤坝后面的区域以外的一切(与堤坝的距离比与邻近水域的距离短)。var distanceDyke = ee.FeatureCollection([feature]).distance(bufferSize);var distanceWater = ee.FeatureCollection([feature.get('joinedWaterFeature')]).distance(bufferSize); // I think the issue is somewhere herevar dykeSideMask = distanceDyke.lt(distanceWater).rename('behindDyke');//Map.addLayer(dykeSideMask, {min: 0, max: 1, palette: ['white', 'blue']}, 'area behind dyke')var zones = dykeSideMask.eq(1);zones = zones.updateMask(zones.neq(0));var areaBehindDyke = zones.addBands(dykeSideMask).reduceToVectors({geometry: Netherlands.geometry(),scale: 50,geometryType: 'polygon',eightConnected: false,labelProperty: 'zone',reducer: ee.Reducer.mean(),maxPixels : 1e12});// 设定平均区域温度var AHNRasterMean = AHN.reduceRegion({reducer : ee.Reducer.mean(),geometry : areaBehindDyke,maxPixels : 1e12});feature=feature.set('elevation',ee.Number(AHNRasterMean.get('elevation')));return feature;
}print(statistics(keringenWaterJoin.first()));// 对特征集合进行映射,以便每个堤坝都能获得其周围环境的属性。
var keringenMetScores = keringenWaterJoin.map(statistics);//将统计数据导出到Google Drive,指定CRS、转换和区域。
Export.table.toDrive({collection:keringenMetScores,description: 'buffer'+bufferSize+'Date2209VersionSHPTEST',folder : "tests",fileFormat: 'SHP'
});

 这是因为集合具有包含连接要素的属性。正在将结果导出为不支持在属性表中包含“特征”的 shapefile。因此,这里必须将其删除或将其转换为兼容的类型(如字符串、数字等)。最简单的方法是在导出中使用“选择器”参数来指定导出中所需的属性。

https://code.earthengine.google.com/612395aecfe012aa704ecf93c534f57d

这里我们仔细看一下导出的table,

Export.table.toDrive(collection, description, folder, fileNamePrefix, fileFormat, selectors, maxVertices)
创建一个批处理任务,将FeatureCollection作为一个表导出到Drive。任务可以从任务标签中开始。

参数。
collection (FeatureCollection):
要导出的特征集合。

description(字符串,可选)。
任务的可读名称。可以包含字母、数字、-、_(没有空格)。默认为 "myExportTableTask"。

folder(字符串,可选)。
导出任务所在的Google Drive文件夹。注意:(a)如果文件夹名称在任何级别都存在,输出将被写入该文件夹,(b)如果存在重复的文件夹名称,输出将被写入最近修改过的文件夹,(c)如果文件夹名称不存在,将在根部创建一个新的文件夹,以及(d)带有分隔符的文件夹名称(例如'path/to/file')将被解释为字面字符串,而不是系统路径。默认为驱动器根目录。

fileNamePrefix(字符串,可选)。
文件名的前缀。可以包含字母、数字、-、_(没有空格)。默认为描述。

fileFormat (String, optional):
输出格式。"CSV"(默认)、"GeoJSON"、"KML"、"KMZ"、"SHP "或 "TFRecord"。

selectors选择器(List<String>|String,可选)
导出时要包含的属性列表;可以是用逗号分隔的单个字符串,也可以是字符串的列表。

maxVertices(数字,可选)。
每个几何体未切割的顶点的最大数量;顶点较多的几何体将被切割成小于此大小的碎片。

Export.table.toDrive({collection:keringenMetScores,description: 'buffer'+bufferSize+'Date2209VersionSHPTEST',folder : "tests",fileFormat: 'SHP',selectors: ['elevation']
});

云小站_专享特惠_云产品推荐-阿里云

Google Earth Engine(GEE)——下载矢量数据过程中出现Property joinedWaterFeature has type Feature错误相关推荐

  1. 基于google earth engine(GEE)下载研究区域影像

    基于google earth engine(GEE)下载研究区域影像 当研究需要Landsat数据时,我们可以通过USGS官网或者地理空间数据云平台下载.由于地理空间数据云目前无法下载到较新的数据,可 ...

  2. 使用GEE(Google Earth Engine)下载STRM30m分辨率高程数据

    简介 本文介绍如何使用GEE(Google Earth Engine)下载STRM30m分辨率高程数据并用ArcMap加载行政边界裁剪栅格图层. 准备工作 申请Google账号 注册Google Dr ...

  3. 使用Google Earth Engine (GEE)实现MODIS数据批量下载

    使用Google Earth Engine GEE实现MODIS数据批量下载 前言 下载数据代码 批量执行run任务 关注公众号,分享GIS知识.ArcGIS教程.SCI论文与科研日常等 前言 上图是 ...

  4. Google Earth Engine(GEE)批量下载代码(以 NDVI数据为例)

    下载数据先准备工作(具体细节都能查到):科学上网 谷歌邮箱,谷歌邮箱注册GEE账号. 一:导入需要下载边界shp文件. 标题 找到自己的shp文件,导入除了sbx文件的所有文件. 导入成功 命名ass ...

  5. Google Earth Engine批量下载Sentinel、Landsat、MODIS遥感影像代码

    Google Earth Engine批量下载Sentinel.Landsat.MODIS遥感影像代码 一.创建下载任务 二.运行下载任务 一.创建下载任务 Google Earth Engine(G ...

  6. Google Earth Engine(GEE)——User memory limit exceeded(2)

    上一次我们已经知道如何去进行避免这种错误的发生,有关详细内容,如果单单只是解决这个问题我们用到的是limit 和 first,上一次的博客在这里: (207条消息) Google Earth Engi ...

  7. Google Earth Engine(GEE) 01-中输入提示快捷键Ctrl+space无法使用的问题

    Google Earth Engine(GEE) 01-中输入提示快捷键Ctrl+space无法使用的问题 GEE中 Ctrl+space组合键用于代码输入快捷提示,能够提高编码的准确度和速度,但是, ...

  8. google earth engine GEE批量 run下载插件

    在Google earth engine中,批量导出文件经常遇到多个文件下载的情况,只能一个个点击RUN.这里介绍一款插件,Open Earth Engine extension .该插件的作者是Ma ...

  9. Google Earth Engine(GEE)——可视化动态图

    代码: var geometry = /* color: #d63000 *//* shown: false *//* displayProperties: [{"type": & ...

最新文章

  1. 如何为你的博客文章自动添加版权信息?
  2. Windows下SonarQube与Jenkins环境的配置使用
  3. Gray-level Co-occurrence Matrix(灰度共生矩阵)
  4. 8-7复习 stl常用算法
  5. 02_IO操作的基本规律(InputStream,OutputStream,Reader,Writer,FileReader,FileWriter,BufferedReader,BufferedWri
  6. 编程语言里函数方法类型检查的重要性
  7. 什么是ci/cd_什么是CI / CD?
  8. 波卡生态项目Polkalokr将在Polkastarter进行IDO
  9. 多个模块使用python logging
  10. 单片机用c语言编程软件手机版,单片机C语言编程软件(mikroc pro for pic)下载 V7.1.0 官方版 - 比克尔下载...
  11. OFFICE文档转换到PDF的几种方法与转换效率和性能的简单比较
  12. 博士申请——Research Proposal
  13. Android之微信开放平台创建应用
  14. 从字节中取出1bit数据
  15. 关于零基础入门金融风控挑战赛的笔记系列
  16. MATLAB源码-GRABIT从图像文件中提取数据点。
  17. 专访天冕科技许文彬:以超5000万用户为基础,构建完善的隐私计算数据应用生态
  18. arcgis 同名图层合并_arcgis合并多个图层
  19. python数据可视化字段,Python数据可视化
  20. pycharm debug 提示 Python Debugger Extension Available Cython extension speeds up Python debugging

热门文章

  1. 高通重磅发布!第二代骁龙8:CPU提升35%、GPU提升45%、AI提升4.35倍,架构全新升级!...
  2. max9286+max96705摄像头调试--基于imx8qm
  3. 在flex布局中,一行中的最后一个元素靠最右边放
  4. 计算机机箱的作用,电脑机箱有什么用 电脑机箱作用介绍【详解】
  5. 我的世界死亡物品不掉落指令是什么
  6. css水平居中和垂直居中
  7. 昨晚停网后,写了一段代码破解隔壁小姐姐的wifi密码...
  8. 主成分分析(PCA)与t-SNE
  9. 【K8s】安全认证与DashBoard
  10. 选虚拟桌面与选房子一样重要.