对于很多情况下,批量栅格数据的掩膜或者裁剪都是很不方便的,这种问题我也遇到过。

目前,app_store中只有批量的矢量裁剪栅格,对于栅格掩膜栅格,网上也没有很好的代码

所以如何利用envi+idl实现批量掩膜或者裁剪呢?

1 栅格掩膜介绍

简单来说,就是用一个栅格裁剪另一个栅格,分别叫做被裁剪栅格和裁剪栅格,那么最终的结果大小和裁剪栅格一样。

2 举例

图中为同一区域各种水体指数图,那么在我研究特定区域时,需要对其进行裁剪,原先的做法就是一幅一幅裁剪,但是这个效率太低下了。我当时裁剪了好久,所以,将其批量进行处理就很方便了。

3 裁剪代码envi+idl 二次开发

;+

; :Author: 15845

;-date:2019/3/7

;********************栅格文件批量裁剪*******************************************

pro batch_raster

compile_opt idl2

envi,/restore_base_save_files

envi_batch_init

;***********裁剪文件的打开**********

cd,"d:\"

file=dialog_pickfile(title="打开裁剪文件")

envi_open_file,file,r_fid=fid

envi_file_query,fid,ns=ns,nl=nl,nb=nb,dims=dims,data_type=type,interleave=interleave

map_info=envi_get_map_info(fid=fid)

base_raster=envi.openraster(file)

;获取的裁剪文件的左上角的地理坐标

base_map_coordinate=base_raster.spatialref.tie_point_map

x=base_map_coordinate[0]

y=base_map_coordinate[1]

; ****批量裁剪文件的打开*********

fn_subset=dialog_pickfile(title="打开栅格数据文件",/directory) ;被裁剪的文件

fn_name=file_search(fn_subset,'*.{dat,tif}',count=count_subset)

fn_basename=file_basename(fn_name) ;获取被裁减文件的名称

for i=0,count_subset-1 do begin

temp=envi.openraster(fn_name[i])

temp.spatialref.convertmaptofile,x,y,x1,y1 ;x1,y1为裁剪文件在被裁剪文件中的左上角位置

x_base=fix(x1)

y_base=fix(y1)

subset=envisubsetraster(temp,sub_rect=[x_base,y_base,x_base+ns-1,y_base+nl-1])

data="subset_"+fn_basename[i]

subset.export,data,"envi"

endfor

end说明:同时打开代码,运行处理。

### 裁剪结果:

4 总结这个栅格数据批量掩膜使用的是envi+idl 新的开发模式,即面向对象思想的编写。代码量减少很多。

因知乎排版问题,同步我的Github

掩膜裁剪tif步骤_栅格数据批量掩膜(裁剪)相关推荐

  1. 掩膜裁剪tif步骤_使用Arcgis掩膜剪裁工具剪裁全球气候数据为我国范围,并转换为ASC格式...

    大家好,因科研需要,最近笔者正在自学Arcgis和Maxent软件预测物种分布区,不定期更新学习体会,有不当之处欢迎指正,互相交流,谢谢大家^_^. 需要用到的数据:1:400万中国省级行政区,格式为 ...

  2. 掩膜裁剪tif步骤_使用Matlab裁剪栅格数据

    需求 使用Matlab读取tif格式的栅格数据,并根据该栅格数据裁剪多副其余栅格数据 制作掩膜数据 Mask_data = double(importdata('D:\GPP\ecology\eco1 ...

  3. 掩膜裁剪tif步骤_ENVI中掩膜掩膜操作及影像分类教程(转)

    ENVI 中掩膜掩膜操作及影像分类教程 ( 转 ) 上一篇 / 下一篇 2008-11-25 15:41:31 / 个人分类: 收藏 查看 ( 179 ) / 评论 ( 0 ) / 评分 ( 0 /  ...

  4. ios 裁剪圆形头像_详解iOS 裁剪圆形图像并显示(类似于微信头像)

    本文主要讲解如何从照片库选择一张照片后将其裁剪成圆形头像并显示,类似于微信头像那种模式. 本文的方法也适用于当时拍照获取的图像,方法类似,所以不再赘述. 本文主要是在iOS 10环境下使用,此时如果要 ...

  5. MODIS数据下载,HEG批量拼接处理,arcmap批量掩膜提取,python栅格计算

    前言: 2022.12.30修改:补Python编程基础的过程中发现使用Print也可以向文件里写东西,查看写过的代码,然后发现HEG批量拼接处理代码中有的地方在复制粘贴至博客的时候出现了缩进错误,评 ...

  6. 使用SHP数据批量裁剪TIF图像并转为JPG格式

    问题描述 已有数据:1张大范围的遥感影像和1张裁剪为同一大小的shp数据 使用工具:ArcPy 实现目标: 1.shp数据按照属性分块输出 2.使用shp数据批量裁剪遥感影像,将影像裁剪为小块的tif ...

  7. ENVI掩膜相关操作步骤详述

    ENVI掩膜相关操作步骤详述 以某一景光谱数据为例,影像中存在着大量的云,影响后续研究,现需要对研究区域进行掩膜,即仅对裸地进行后续处理,云覆盖区不参与运算. 一.打开数据 打开数据,并对第一波段进行 ...

  8. arcgis根据矢量范围裁取tif影像(栅格数据)、批量合并shp文件、根据矢量范围裁取区域内的矢量,输出地理坐标系

    选取研究区域,作图美观. 这是最初的矢量文件,现在切割得到了云贵川地区的矢量文件,通过直接编辑最初的矢量文件. 现在要从上图切出云贵川区域. 打开对话框后输入影像和裁剪的区域,如果只需要裁剪的矢量区域 ...

  9. 裁剪TIF图像,代码简单,易懂(Arcpy)

    可能或多或少会用到研究区域裁剪,但是用Python裁剪我总觉得还是有点麻烦! Arcgis作为我们常用来使用看图片的(当然,他的空间分析什么功能还是很强大的,只不过我不怎么用得到),如果只是用来看图片 ...

最新文章

  1. 编写Ogre插件的一般方法
  2. 【论文解读】比特币:一种点对点的点子支付系统
  3. 解析函數論 Page 22 級數收斂的一個充分條件
  4. 【Java】睡眠排序
  5. android 后退按钮,如何在android中处理Search View的后退按钮
  6. AndroidLinux gdb用法
  7. python菜鸟教程 | if else 判断
  8. ckplayer php,ckplayer播放器
  9. c语言知识点总结300字,大二学年自我总结300字 .doc
  10. 树莓派3强大很多--相比树莓派2
  11. 【多线程】初识多线程
  12. 程序员应了解:知识技能金字塔
  13. practice是什么意思_practice 是什么意思
  14. Alpha 冲刺(10/10)
  15. 密码字典大全(seclists)
  16. 吉林大学计网真题以及期末题汇总
  17. 携程app服务器未响应,携程网网站和APP客户端无法访问原因 恢复时间什么时候?...
  18. DirectX学习资料汇总
  19. Java 集成阿里云短信服务实现通过手机号码找回密码功能
  20. 每日生产万亿消息数据入库,腾讯如何突破大数据分析架构瓶颈

热门文章

  1. python模拟点击屏幕ios_python模拟点击在ios中实现的实例讲解
  2. 基于ICP算法的三维点云数据拼接算法的实现
  3. 优雅地封装和使用 ViewBinding,该替代 Kotlin synthetic 和 ButterKnife 了
  4. iphone手机safari浏览器访问网站滚动条不显示问题解决办法
  5. 微信支付APP支付完全攻略
  6. java project、maven project项目打成可运行的jar包
  7. MQTT网关连接华为云物联网平台应用
  8. Request header field x-xsrf-token is not allowed by Access-Control-Allow-Headers in preflight respon
  9. Dns与httpDNS的区别
  10. 【转】最实用的IT类网站及工具大集合