检测测深网格和输出多边形中的值 - Python

时间:2018-02-08 12:43:53

标签: python csv arcgis shapely geopandas

我已经获得了测深(水深)数据矩阵。矩阵表示均匀间隔的深度网格,并且采用.csv格式。

矩阵有一些“筛选出”的区域,其值为-9999。需要识别-9999点并将其转换为稍后要使用的某种功能。大部分将在网格内的簇中 - 大面积的筛选出的数据包含许多(> 1000)相邻点。 然而...

  • 可能是网格的部分或全部外边缘值的值为-9999。
  • 可能存在单个点/线的点,其值为-9999。
  • 可能存在-9999周围区域的'好'(不是-9999)数据 - 多边形内的多边形。

我的任务:识别csv文件中-9999值的每个单独区域(或点),并为每个区域生成一个单独的多边形/点。多边形将是-9999区域的外/内边界

接下来的步骤涉及在地图上放置项目,避免使用-9999功能。

我创建了自己的函数来识别-9999值并创建多边形,但它有一些问题,我确信必须有预先构建的库,它们可以做得比我好。

任何人都可以建议一种方法来解决这个问题,并提供一些有用的库/功能建议吗?我开始怀疑多边形/特征是否是这样做的方式,但如果它可以工作,那么这种方法似乎确实有一些很好的优势。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用地理处理工具分三步完成此操作:

  1. 使用IsNull创建一个新的栅格,其中NoData值转换为1(所有其他值都转换为0)。
  2. 使用Raster To Polygon将新栅格转换为多边形。
  3. 使用Multipart To Singlepart分隔多部分多边形。
  4. 您可以使用ModelBuilder或使用arcpy完美地自动执行此工作流程。如果您熟悉Python我建议您使用arcpy,请查看每个工具帮助页面末尾的代码示例。