首页 > 解决方案 > 通过 pyspark udfs 在 azure databricks 上使用多边形切割图像

问题描述

我有一个带有属性的数据框,其中包含通过 WKT 定义的几何图形。我有一个图像。我想将图像分割成这些多边形定义的边界。

我曾计划使用 rasterio 并通过 udf 分发图像(阅读后)。但是,光栅内部存储器似乎无法腌制和分发。这是一个代码片段,描述了我试图完成的事情。

img = rasterio.open('/dbfs/mnt/mymount/USDA_cropscape_exports/CDL_Iowa_2020.tif')

def cliplu ( wkt_in ) :
  poly = shwkt.loads( wkt_in )
  sub_image_nd = rasterio.mask.mask( img , [poly] , crop=True )[0].read(1)
  return sub_image_nd  

clip_landuseimg_udf = pyspkF.udf( lambda x : cliplu(x) , StringType() )

section_boundaries_df = section_boundaries_df.withColumn( 'clipped_img' , clip_landuseimg_udf( 'bbox_wkt' ) )

有没有办法使用与 Azure 上的数据块兼容的库来分发分段?

PS:由于与 Azure 上的数据块不兼容,我无法安装 rasterframes。

标签: pysparkazure-databricksrasterio

解决方案


推荐阅读