1, Beam Introduction
In order to serialize HDF files in Hadoop, after a variety of searches, inadvertently discovered a powerful Java open source software, it is beam.
For researchers engaged in remote sensing, it can be used as a powerful open source remote sensing processing software by installing beam. Although not envi so easy to use, but also perfunctory passable. Install beam at least, without authorization files to crack ~
For remote sensing software developers, Beam's library is a great tool!!!
Using Java to achieve what re-projection, band operations, principal component analysis, image clipping, image mosaic, create a histogram , a variety of various, simplified different remote sensing operations, it is a dish of appetizers.
Don't worry that it supports remote sensing data formats that are not enough, GEOTIFF,HDF4,HDF5, these common remote sensing formats are not a cinch.
Attach his official address: Http://www.brockmann-consult.de/cms/web/beam/,Java API address in this: http://www.brockmann-consult.de/beam/doc/ apidocs/index.html, source code here: Https://github.com/bcdev/beam
2. Several important classes and concepts in beam
Product class
The representation of remote sensing images in memory is that product,product only contains metadata information of remote sensing images and does not contain actual remote sensing images. A product can contain multiple band, while the Productmanager class is used to manage multiple product. For example, a landscape TIF data or HDF data in memory representation, is a product.
Band class
Band contains the geo-parameter information in product, and the image information in band is stored in Productdata, in fact Band is simply a "container" that stores the metadata information of the image, including information such as:
1. Flagcoding Information
2, its position in the owning product (can contain multiple band in a product)
3, the center wavelength of the band
4. The solar spectral flux of the band (the band spectral flux? )
5. Width and cover of band
Why is the image data in the band stored in the productdata instead of being stored directly in the band?
Reason: In order to minimize the memory consumption, so band will not automatically read the Productdata, but by executing the band Loadrasterdata () method explicitly to obtain the band corresponding to it. (This makes sense, remote sensing images of hundreds of M, if all directly put memory, 4G memory indicates that may not be enough to use AH)
3. Beam code example
Write product to the local hard drive, as shown in the image in GeoTiff format
Product testproduct = Tifreader. Readproductnodes ("f:\\exp_data\\test5.tif", null); Productwriterplugin tifwriterplugin = new Geotiffproductwriterplugin (); Geotiffproductwriter tifproductwriter = new Geotiffproductwriter (tifwriterplugin); File OutFile = new file ("f:\\ grassland Drought Index experimental data \\test2.tif");//writes an absolute path, which is saved as a local file, and if only the file name is populated, the file is saved as an in-memory testproduct. Setproductwriter (tifproductwriter); Tifproductwriter writeproductnodes (testproduct, outFile);// Writeproductnodes only the header file information for product is stored in outfile, and product band is not written to Outfileproductband =testproduct.getband ("Band_1"); Productband. writerasterdatafully ();//Writes all band information to OutFile, at which point the outfile contains all the information of product
Read product from local hard disk
Product grassproduct = grasscovertifreader.readproductnodes ("f:\\ Grassland drought index experimental data \ \ Productreader map Output \\MCD12Q1", NULL);
A powerful Java open source Remote sensing processing software (library)---Beam