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

检测水深网格中的值并输出多边形-Python,python,csv,arcgis,shapely,geopandas,Python,Csv,Arcgis,Shapely,Geopandas,我收到了一份测深(水深)数据矩阵。该矩阵表示均匀分布的深度网格,格式为.csv 矩阵有一些“筛选”区域,其值为-9999。需要识别-9999点,并将其转换为某种功能,以便以后使用。大多数将在网格内的集群中-包含许多(>1000)相邻点的大面积筛选数据。 然而 可能是栅格的某些或所有外边缘值的值为-9999 可能存在值为-9999的孤立点/点线 多边形中的“良好”(非-9999)数据多边形区域周围可能有-9999区域 我的任务:识别csv文件中-9999值的每个单独区域(或点),并为每个区域/

我收到了一份测深(水深)数据矩阵。该矩阵表示均匀分布的深度网格,格式为.csv

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

  • 可能是栅格的某些或所有外边缘值的值为-9999
  • 可能存在值为-9999的孤立点/点线
  • 多边形中的“良好”(非-9999)数据多边形区域周围可能有-9999区域
我的任务:识别csv文件中-9999值的每个单独区域(或点),并为每个区域/点生成单独的多边形/点。多边形将是-9999区域的外部/内部边界

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

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

有人能提出一种方法来解决这个问题吗?也许能给出一些有用的库/函数建议?我开始怀疑多边形/特征是否是实现这一点的方法,但如果这种方法可行的话,它似乎确实有一些很好的优势


谢谢大家!

使用地理处理工具,您可以通过3个步骤实现这一点:

  • 用于创建新光栅,其中节点数据值转换为1(所有其他值转换为0)
  • 使用将新光栅转换为多边形
  • 使用分隔条分隔多部分多边形

  • 您可以使用或使用arcpy完全自动化此工作流。如果您熟悉Python,我建议您使用arcpy,请查看每个工具帮助页面末尾的代码示例。

    您有ArcGIS的Spatial Analyst扩展吗?是的,我有访问该扩展的权限。太好了。谢谢你,我试试看。但我希望我能用python实现自动化。有什么想法吗?一个完全没有GIS的解决方案怎么样?我不想这样,只想使用python。理想的。谢谢