一个强大的Java开源遥感处理软件(库)---Beam

来源:互联网 发布:淘宝试衣服模特 编辑:程序博客网 时间:2024/06/06 14:10

1、Beam简介

为了在Hadoop中可以序列化HDF文件,在各种搜索之后,无意中发现了一个强大的Java开源软件,它就是Beam。

对于从事遥感的研究者来说,可以通过安装Beam,将它当成一个强大开源的遥感处理软件使用。虽然没有envi那么好用,还马马虎虎过得去。至少安装Beam,不用授权文件去破解~

对于遥感软件开发人员来说,Beam的库简直一大利器!!!

用Java实现什么重投影、波段运算、主成分分析、图像裁剪、图像镶嵌,创建直方图,五花八门、各式各样、繁简不一的遥感操作,对它来说都是一碟开胃小菜。

不用担心它支持的遥感数据格式不够多,GeoTiff,HDF4,HDF5,这些常见的遥感格式,都不在话下。

附上他的官方地址:http://www.brockmann-consult.de/cms/web/beam/,Java API地址在这:http://www.brockmann-consult.de/beam/doc/apidocs/index.html,源代码在这儿:https://github.com/bcdev/beam


2、Beam中几个重要的类和概念

Product类

遥感图像在内存中的表示形式就是Product,Product只是存放着遥感影像的元数据信息,并不包含实际的遥感图像。一个Product可以包含多个Band,而ProductManager类用来管理多个Product。例如,一景tif数据或HDF数据在内存中的表示形式,就是一个Product啦。


Band类

Band包含了Product中的地理参数信息,Band中的图像信息存储在ProductData中,实际上Band只是存储着图像元数据信息的"容器";其包含的信息包括:
1、FlagCoding信息
2、其在所属Product中的位置(一个Product中可以包含多个Band)
3、该Band的中心波长
4、the solar spectral flux of the band(该Band的太阳光谱通量?)
5、Band的宽度和盖度


3、Beam代码示例

将Product写入到本地硬盘,下面以GeoTiff格式的影像为例

Product testProduct = tifReader .readProductNodes("F:\\exp_data\\test5.tif" , null );ProductWriterPlugIn tifWriterPlugin = new GeoTiffProductWriterPlugIn();GeoTiffProductWriter tifProductWriter = new GeoTiffProductWriter( tifWriterPlugin );File outFile = new File ("F:\\草原干旱指数实验数据\\test2.tif" );//写入绝对路径,即保存为本地文件;若只填入文件名,则该File保存为内存中testProduct .setProductWriter(tifProductWriter );tifProductWriter .writeProductNodes(testProduct , outFile );//writeProductNodes只将Product的头文件信息存放在outFile中,Product的Band并没有写入outFileproductBand =testProduct.getBand("band_1");productBand .writeRasterDataFully();//将Band的信息全部写入到outFile中,此时outFile就包含了Product的全部信息

从本地硬盘读取Product

Product grassProduct = grassCovertifReader.readProductNodes("F:\\草原干旱指数实验数据\\设置了ProductReader后的map输出\\MCD12Q1", null);



1 0