Combination View Flat View Tree View
Threads [ Previous | Next ]
BEAM performance issue
BEAM performance issue
5/8/12 6:32 PM
My institute is currently using BEAM as part of the processing of time-series of AATSR and MERIS satellite images. We are using these images to estimate various parameters for snow and ice in several projects. We observe that BEAM is a major bottleneck in our processing chains. BEAM is used to convert AATSR and MERIS images from the N1 format in acquisition geometry to the dimap format in, e.g., geographical coordinates.

As a comparison, we have written our own conversion routine in IDL (ittvis.com) for converting MODIS images from hdf files in acquisition geometry to ENVI/IDL files. This conversion software is at least a hundred times faster than BEAM. This is probably due to the fact that IDL has been desinged for fast access to image arrays through the use of index arrays, a feature not found in regular programming languages like C and Fortran.

While BEAM's processing time may not matter too much if one is only interested in converting a single MERIS scene, this is a major issue when processing, e.g., all available MERIS scenes for one winter season within the area of interest (in one particular project this is most of Finland).

Could you please give us some advice on how to reduce the processing time with BEAM?

Best regards,
Øivind
Flag Flag
RE: BEAM performance issue
5/10/12 9:17 AM as a reply to Øivind Thorvald Due Trier.
Please also read

IO performance in gpt

and

Performance of gpf direct vs gpf from inside java code

To answer your question in detail, I would need more information on how BEAM is used in your processing chain, e.g., the script or code or part of the script or code that calls the map projection. Very likely, it is a matter of tile size and/or redundant IO operations, which can be avoided by specific operator configuration. So please tell me exactly what you do with BEAM and we will see.

I cannot confirm that IDL is faster than C/C++ or Java with respect to array access and manipulations in general, even though IDL claims to have this optimized. IDL is an array-based language, i.e. programming algorithms with arrays is simple because the syntax for doing this is simple. But simple syntax does not imply high performance.
Flag Flag
RE: BEAM performance issue
5/10/12 10:12 AM as a reply to Øivind Thorvald Due Trier.
Please also read

Creating a GPF Graph

and

Bulk Processing with GPT

It often helps to increase the size of the tile cache in order to reach better performance. And when you do a map projection, it may be a good idea to use the SubsetOp to extract the region you are interested in before making the map projection

And you may want to try different tile sizes by changing

1beam.envisat.tileWidth = *
2beam.envisat.tileHeight = 64


in the beam.config file. The above setting makes the tile width equal to the full width of the input images. You may also read this thread.
Flag Flag
RE: BEAM performance issue
5/10/12 4:18 PM as a reply to Ralf Quast.
Cool! you can use a * for the tile width
Great idea.
Flag Flag

 

Welcome to the BEAM Forum!

We encourage you to sign in our forum and participate in the BEAM community. The forum is maintained by the BEAM project team who will most likely answer your questions within 24 hours (except during common holidays) - if not done by other community members. Collaborate, share your knowledge and learn from other users!

If you don't find what you are looking for, please also consider the following external forums: