envi5.1安装步骤怎样输入经纬度定位

IDL通过经纬度定位获取DN值
以前就想写,但是因为envi可以就一直没弄。今天正好有个机会,就做了这个事情。ENVI中在主窗口中pixel
locator可以实现,但是当我们需要读入很多的数据的时候,也就是批量处理的时候,显然编程来的更快。这里只是写了单独输入参数的pro,批处理的是偶可以再写一个pro,读入坐标到数组,利用for循环调用就行了。
来说一下思路:
首先,我们很容易通过envi提供的一些函数获取影像的基本信息,包括dn值的二维数组,坐标信息,像元大小,以及左上角坐标。(envi_open_file,envi_file_query,envi_get_data,envi_get_projection,这四个函数会经常使用。)
其次,根据输入的经纬度,利用坐标转换函数将经纬度转换为图像对应的坐标。
接下来,利用和左上角的坐标差值,除上对应的xsize或者ysize就得到了行列号,sample和line。
最后,用sample和line作为索引,从获取的二维数组中读取dn值即可。
注意:经纬度中,纬度对应y,经度对应x,x的坐标差除上xsize得到的是列,y的坐标差除以ysize得到的是行。
而且,idl中,envi也是,数组的访问是[column,row]的形式取的,所以最后是data[sample,line]得到的就是正确的。如果不确定的话,可以和envi中的pixel
locator进行对比。
附上代码:
; :Author:Zhigang
; :Copyright:Niglas
; Email:zhigang_
PRO locateDN_HJ,latitude,longtude
& ;LOAD FUNCTIONS' MODULES OF ENVI
& COMPILE_OPT IDL2
& ENVI,/RESTORE_BASE_SAVE_FILES
& ENVI_BATCH_INIT
;define the path
& imagePath =
'E:\temp\HJ1B-CCD1-451-76-.TIF'
& ;open HJ image
ENVI_OPEN_FILE,imagePath,r_fid =
& ENVI_FILE_QUERY, fid, dims=some parameters
will be used to get data
& ;get the projection information
image_proj = ENVI_GET_PROJECTION(fid =
& ;create a geographic projection, can express the
latitude and longtitude
geo_proj = ENVI_PROJ_CREATE(/geo)
& ;convert input lat and long to coordinate under
image projection
& ;NOTED:In the WGS-84, X is longtude, Y is
ENVI_CONVERT_PROJECTION_COORDINATES,longtude,latitude,geo_proj,image_x,image_y,image_proj
& ;read metadata from image
& mapinfo=ENVI_GET_MAP_INFO(fid=fid)
;help,query the mapinfo
structure, understand the MC is corner coordinate,PS is pixel
& ;& print,mapinfo.MC
& ;& print,mapinfo.PS
& ;Geolocation of UpperLeft
& ULlat=mapinfo.MC(3);Y is latitude
& ULlon=mapinfo.MC(2);X is longtude
;2. Pixel Size
& Xsize=mapinfo.PS(0)
& Ysize=mapinfo.PS(1)
& ;calculate the row and column according to
& sample = FIX(ABS((image_x- ULlon)/Xsize));abs is
determin the positive value, fix is get integer number
& line = FIX(ABS((image_y - ULlat)/Ysize))
& ;print,thisRow,thisColumn
& ;get data via row and column
& DN_data= ENVI_GET_DATA(fid = fid,dims = dims,pos
& ;help,DN_data
& ;get_data
& dn = DN_data[sample,line]
& ;write to file
& PRINT,dn
& ;Exit ENVI
& ENVI_BATCH_EXIT
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。ENVI5.1中Landsat 8数据大气校正_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
ENVI5.1中Landsat 8数据大气校正
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢下载本文档需要登录,并付出相应积分。()
(已有0人评价)
下载:0次格式:doc页数:396贡献者:Zhulei112上传时间: 11:48
0人评价81页
0人评价99页
0人评价68页
0人评价209页
0人评价436页
所需积分:(友情提示:所有文档均可免费预览!下载之前请务必先预览阅读,以免误下载造成积分浪费!)
(多个标签用逗号分隔)
文不对题,内容与标题介绍不符
广告内容或内容过于简单
文档乱码或无法正常显示
若此文档涉嫌侵害了您的权利,请参照说明。

我要回帖

更多关于 envi5.1破解版下载 的文章

 

随机推荐