IDL实现矢量文件裁剪栅格数据
利用ENVI_SUBSET_VIA_ROI_DOIT函数实现矢量文件裁剪栅格数据。
测试数据:栅格文件是Mercator投影,矢量文件是Geographic坐标系
infile='F:\Temp_Data\FY3_BEIJING_HFII_DAY_200808031211_Mercator.tif'
outfile='F:\Temp_Data\FY3_BEIJING_HFII_DAY_200808031211_Mercator_Sub.dat'
shpfile='F:\Shapefile\beijing.shp' envi_open_file,infile,r_fid=tfid
envi_file_query,tfid,dims=dims,ns=ns,nl=nl,nb=nb
oproj=envi_get_projection(fid=tfid)
iproj=envi_proj_create(/geographic) oshp=obj_new('IDLffShape',shpfile)
oshp->GetProperty,n_Entities=n_ent,attribute_info=attr_info,n_attributes=n_attr,Entity_type=ent_type
roi_ids=lonarr(n_ent)
for i=0,n_ent-1 do begin
entity=oshp->GetEntity(i)
if ptr_valid(entity.parts) ne 0 then begin
tempLon=reform((*entity.vertices)[0,*])
tempLat=reform((*entity.vertices)[1,*])
envi_convert_projection_coordinates, $
tempLon,tempLat,iproj, $
xmap,ymap,oproj
envi_convert_file_coordinates, $
tfid,xf,yf,xmap,ymap
roi_ids[i]=envi_create_roi(ns=ns,nl=nl)
envi_define_roi,roi_ids[i],xpts=xf,ypts=yf,/polygon
endif if i eq 0 then begin
xmin=round(min(xf,max=xmax))
ymin=round(min(yf,max=ymax))
endif else begin
xmin=xmin<round(min(xf))
xmax=xmax>round(max(xf))
ymin=ymin<round(min(yf))
ymax=ymax>round(max(yf))
endelse
oshp->DestroyEntity,entity
endfor
obj_destroy,oshp
xmin=xmin>0
xmax=xmax<ns
ymin=ymin>0
ymax=ymax<nl dims=[-1,xmin,xmax,ymin,ymax]
envi_doit,'envi_subset_via_roi_doit', $
fid=tfid, $
dims=dims, $
ns=ns,nl=nl, $
pos=indgen(nb), $
background=0, $
roi_ids=roi_ids, $
proj=oproj, $
out_name=outfile
envi_file_mng,id=tfid,/remove
envi_file_mng,id=rfid,/remove
envi_delete_rois,/all
结果如下:

IDL实现矢量文件裁剪栅格数据的更多相关文章
- 使用QGIS将文本坐标转换为矢量文件
本文主要是说明如果使用QGIS将文本格式的点坐标转换为矢量文件(如shapefile格式). 所需工具:QGIS 所需数据:文本格式的点文件 所需要处理的点坐标文件如下所示, 114.2 22.15 ...
- [转]TrueType(TTF)字体文件裁剪(支持简体中文,繁体中文TTF字体裁剪)
原文入口: TTF字体文件裁剪(支持简体中文,繁体中文TTF字体裁剪) 对于TrueType(TTF)字体格式的介绍可以看: https://www.cnblogs.com/slysky/p/1131 ...
- 时空地图TimeGIS 可编辑ArcGIS的Shape矢量文件的地理信息系统
时空地图 TimeGIS 6.0 是一个地理信息系统软件,它可以显示网络地图,编辑ArcGIS的SHP矢量文件格式,显示NETCDF等栅格文件,管理图层等. 在它的基础上,可以二次开发各种GIS应用, ...
- GDAL读写矢量文件——Python
在Python中使用OGR时,先要导入OGR库,如果需要对中文的支持,还需要导入GDAL库,具体代码如下.Python创建的shp结果如图1所示. 图1 Python创建矢量结果 #-*- codin ...
- 【180】IDL 读写 HDF 文件
HDF(Hierarchical Data Formats)数据格式由 NCSA 开发.HDF 提供了大量的数据模式,包括多维数组.表格.图像.注解和调色板.在下面的章节中,将描述 HDF 科学数据系 ...
- 【179】IDL 读写 NetCDF 文件
NetCDF(network Common Data Form)由位于科罗拉多州波尔市的 Unidata 程序中心开发,主要应用于大气科学的研究.NetCDF 的数据模式具有简单性和灵活性的特点.Ne ...
- OpenCV+Python实现视频文件裁剪功能
Python编程实现对视频文件进行剪切的功能.截取指定长度的视频并保存,运行后首先选择要裁剪的视频,然后输入开始时间点和停止时间点即可.将剪切后的视频保存为output.avi文件 所属网站分类: 资 ...
- 【171】IDL读取HDF文件
;+ ;:Description: ; Describe the procedure. ; ; Author: DYQ 2009-7-19; ; ;- PRO TEST_READHDF COMPILE ...
- 通过Nginx訪问FastDFS文件系统并进行图片文件裁剪的性能測试和分析
前段时间公司的分布式图片文件系统(FastDFS)做了图片裁剪和缩放功能,并把缩放计算和FastDFS做了解耦分离,前端用虚拟机作为图片文件缩放的訪问代理层(Nginx Proxy),后端使用ngin ...
随机推荐
- centos7常用命令
系统命令 shutdown -h now # 关机 shutdown -r now # 重启 reboot # 重启 systemctl status firewalld # 查看防火墙状态 syst ...
- RESTful Levels & HATEOAS
什么是RESTful REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的.翻译过来就是"表现层状态转化.” REST是一种软件架构风格.设计风格,而不是 ...
- freebsd 记录点
问题一: FreeBSD修改python的默认版本 在/usr/local/bin目录下, mv python python.old ln -s pythonX.X python in X.X wr ...
- 类似py2exe软件真的能保护python源码吗
类似py2exe软件真的能保护python源码吗 背景 最近写了个工具用于对项目中C/C++文件的字符串常量进行自动化加密处理,用python写的,工具效果不错,所以打算在公司内部推广.为了防止代码泄 ...
- Django学习笔记之视图高级-CSV文件生成
生成CSV文件 有时候我们做的网站,需要将一些数据,生成有一个CSV文件给浏览器,并且是作为附件的形式下载下来.以下将讲解如何生成CSV文件. 生成小的CSV文件 这里将用一个生成小的CSV文件为例. ...
- 第5章 Hyperledger Fabric功能
Hyperledger Fabric is a unique implementation of distributed ledger technology (DLT) that delivers e ...
- day02格式化输出等
1.格式化输出 format % 占位符 %s:str, %d: dight, %f: float 字符串多行用三个单引号或三个双引号 %%5,百分之五,转义字符%.想 ...
- redux源码解读(二)
之前,已经写过一篇redux源码解读(一),主要分析了 redux 的核心思想,并用100多行代码实现一个简单的 redux .但是,那个实现还不具备合并 reducer 和添加 middleware ...
- java中增删改查(CRUD)总结
对于User表增删改查:1:save(保存方法) view(查询所有记录) update(更新方法) delete(删除方法) 通过method这个参数进行判断执行不同的操作 2: 具体的实现: ...
- Java递归:一个NB自慰的操作
递归的核心思想:自身调用自身 示例一:求5的阶乘 常规方法: 使用while循环 1 public class Demo01 { 2 3 public static void main(String[ ...