利用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实现矢量文件裁剪栅格数据的更多相关文章

  1. 使用QGIS将文本坐标转换为矢量文件

    本文主要是说明如果使用QGIS将文本格式的点坐标转换为矢量文件(如shapefile格式). 所需工具:QGIS 所需数据:文本格式的点文件 所需要处理的点坐标文件如下所示, 114.2 22.15 ...

  2. [转]TrueType(TTF)字体文件裁剪(支持简体中文,繁体中文TTF字体裁剪)

    原文入口: TTF字体文件裁剪(支持简体中文,繁体中文TTF字体裁剪) 对于TrueType(TTF)字体格式的介绍可以看: https://www.cnblogs.com/slysky/p/1131 ...

  3. 时空地图TimeGIS 可编辑ArcGIS的Shape矢量文件的地理信息系统

    时空地图 TimeGIS 6.0 是一个地理信息系统软件,它可以显示网络地图,编辑ArcGIS的SHP矢量文件格式,显示NETCDF等栅格文件,管理图层等. 在它的基础上,可以二次开发各种GIS应用, ...

  4. GDAL读写矢量文件——Python

    在Python中使用OGR时,先要导入OGR库,如果需要对中文的支持,还需要导入GDAL库,具体代码如下.Python创建的shp结果如图1所示. 图1 Python创建矢量结果 #-*- codin ...

  5. 【180】IDL 读写 HDF 文件

    HDF(Hierarchical Data Formats)数据格式由 NCSA 开发.HDF 提供了大量的数据模式,包括多维数组.表格.图像.注解和调色板.在下面的章节中,将描述 HDF 科学数据系 ...

  6. 【179】IDL 读写 NetCDF 文件

    NetCDF(network Common Data Form)由位于科罗拉多州波尔市的 Unidata 程序中心开发,主要应用于大气科学的研究.NetCDF 的数据模式具有简单性和灵活性的特点.Ne ...

  7. OpenCV+Python实现视频文件裁剪功能

    Python编程实现对视频文件进行剪切的功能.截取指定长度的视频并保存,运行后首先选择要裁剪的视频,然后输入开始时间点和停止时间点即可.将剪切后的视频保存为output.avi文件 所属网站分类: 资 ...

  8. 【171】IDL读取HDF文件

    ;+ ;:Description: ; Describe the procedure. ; ; Author: DYQ 2009-7-19; ; ;- PRO TEST_READHDF COMPILE ...

  9. 通过Nginx訪问FastDFS文件系统并进行图片文件裁剪的性能測试和分析

    前段时间公司的分布式图片文件系统(FastDFS)做了图片裁剪和缩放功能,并把缩放计算和FastDFS做了解耦分离,前端用虚拟机作为图片文件缩放的訪问代理层(Nginx Proxy),后端使用ngin ...

随机推荐

  1. 光照构建失败。Swarm启动失败

    这是别人(http://blog.csdn.net/z609932088/article/details/52368015)写的,亲试可用 如下图 百度许久,有大神指出是我在编译源码的的时候没有将其中 ...

  2. shiro注解

    shiro注解权限控制-5个权限注解 RequiresAuthentication: 使用该注解标注的类,实例,方法在访问或调用时,当前Subject必须在当前session中已经过认证. Requi ...

  3. Python练习十一

    1.写一个程序,提示输入整数X,然后计算从1到X连续整数的和. num = int(input('please the input number:')) sum_num = 0 for i in ra ...

  4. python 日常 摘要

    正负无穷float(‘inf’): Python中可以用表示正负无穷:float("inf"), float("-inf") 不等式: 当涉及 > 和 & ...

  5. windows下Redis的安装和使用

    1.要安装Redis,首先要获取安装包.Windows的Redis安装包需要到以下GitHub链接找到.链接:https://github.com/MSOpenTech/redis.打开网站后,找到R ...

  6. 拖放事件(drop events)在Firefox上运行会出现的问题

    可能会有人觉得我废话特别多,我就在开头写一个简单粗暴的版本: 在Firefox中ondrop事件会触发Firefox自带的拖拽搜索功能,在ondrop事件触发执行时触发的函数中加上这两条: /* 禁止 ...

  7. D# 语法

    这篇文章 随意 的 记录 关于 D# 语法的想法 . template 和 interface   同时作为一等公民 D# 是程序员的语言,不需要太多包装和修饰, D# 是 简单的, 编译器 和 ID ...

  8. A*搜索详解(1)——通往基地的最短路线

    假设地图上有一片树林,坦克需要绕过树林,走到另一侧的军事基地,在无数条行进路线中,哪条才是最短的? 这是典型的最短寻径问题,可以使用A*算法求解.A*搜索算法俗称A星算法,是一个被广泛应用于路径优化领 ...

  9. 第一章 XAML概览

    1.1 XAML是什么? XAML是eXtensible Application Markup Language的英文缩写,相应的中文名称为可扩展应用程序标记语言.也就是说在开发一个应用程序时,我们可 ...

  10. Http长连接

    1.Http长连接 Http的请求时在TCP连接上进行发送的,TCP的连接分为长连接和短连接 打开www.baidu.com,查看Connection ID 如下图. Connection ID代表T ...