求取SHP文件的最小外接矩形并裁剪图像
生活随笔
收集整理的這篇文章主要介紹了
求取SHP文件的最小外接矩形并裁剪图像
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
目的:
已知數(shù)據(jù):
2.shp文件對應(yīng)的影像。
工具
ARCGIS10.4
python2.7(ARCGIS自帶)
步驟
一、求取shp文件中各個形狀的最小外接矩形
首先打開ArcMAP的工具箱,依次點擊Data Management tools——Features——Minimum Bounding Geometry。該工具使用方法和參數(shù)含義詳見https://pro.arcgis.com/zh-cn/pro-app/tool-reference/data-management/minimum-bounding-geometry.htm
使用該工具之后即可求得各個形狀的最小外接矩形
將求得的最小外接矩形按照下面的步驟保存為shp文件。
此時可以在保存路徑下面看到保存的shp文件了。
二、根據(jù)shp文件的每一個形狀裁剪圖像
這里使用ARCGIS自帶的python進行二次開發(fā)。
打開pycharm,新建工程,將工程的python解釋器設(shè)置為ARCGIS自帶的python
此外,為了處理shp文件,還需安裝pyshape包。此外由于pyshape對中文的支持不好,當(dāng)文件路徑里有中文的時候可能會出現(xiàn)錯誤。
具體處理代碼如下
# -*- coding: utf-8 -*- import os import shutil import arcpy import shapefilearcpy.env.workspace = r'F:\桌面\csdn\csdn.gdb' # arcgis地理數(shù)據(jù)庫目錄 shp_path = 'G:\\test\\Export_Output_2.shp' # shp文件的路徑, shapefile不支持中文路徑 raster = 'F:\\桌面\\csdn\\multi\\img.tif' # 圖像路徑 out_dir = "G:/test/clip/" # 裁剪后圖像保存路徑 if os.path.exists(out_dir):shutil.rmtree(out_dir) os.mkdir(out_dir)sf = shapefile.Reader(shp_path) # 讀取shp文件 shapes = sf.shapes()for i in range(len(shapes)):shp = shapes[i] # 獲取shp文件中的每一個形狀out_path = os.path.join(out_dir, str(i) + '.tif')point = shp.points # 獲取每一個最小外接矩形的四個點x_list = [ii[0] for ii in point]y_list = [ii[1] for ii in point]x_min = min(x_list)y_min = min(y_list)x_max = max(x_list)y_max = max(y_list)cor = str(x_min) + ' ' + str(y_min) + ' ' + str(x_max) + ' ' + str(y_max)arcpy.Clip_management(raster, cor, out_path, "#", "#", None) # 調(diào)用工具箱函數(shù)print i運行結(jié)果如下,此時的圖像不能直接打開,但是可以用ARCGIS打開,或者用opencv處理成可以直接打開的圖像文件。
?
總結(jié)
以上是生活随笔為你收集整理的求取SHP文件的最小外接矩形并裁剪图像的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 夏季繁华系列||妆面照欣赏
- 下一篇: 网络通过mac定位机器_如何设置Mac以