data processing
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 6619
Workorder Processing System 0.3.0
Workorder Processing System allows you to quickly set up a work order/ticket tracking system for most service related businesses more>>
Workorder Processing System allows you to quickly set up a work order/ticket tracking system for most service related businesses.
Workorder Processing System is capable of handling multiple branches, which allows all branches to run from one central server connected to the Internet.
Main features:
- Multi branch capable with central server
- Customer address database
- Customer work history
- Searchable ticket database
- Business appointment scheduler
<<lessWorkorder Processing System is capable of handling multiple branches, which allows all branches to run from one central server connected to the Internet.
Main features:
- Multi branch capable with central server
- Customer address database
- Customer work history
- Searchable ticket database
- Business appointment scheduler
Download (0.21MB)
Added: 2007-04-16 License: GPL (GNU General Public License) Price:
924 downloads
Process Raw Images 0.2
Process Raw Images is a service menu for processing many raw images at once. Supports output to Jpeg, Png and Tiff. more>>
Process Raw Images is a service menu for processing many raw images at once. Supports output to Jpeg, Png and Tiff.
<<less Download (0.006MB)
Added: 2007-02-05 License: GPL (GNU General Public License) Price:
996 downloads
Data::Locations 5.4
Data::Locations is a virtual file manager which allows to read/write data to and from virtual files. more>>
Data::Locations - magic insertion points in your data
Did you already encounter the problem that you had to produce some data in a particular order, but that some piece of the data was still unavailable at the point in the sequence where it belonged and where it should have been produced?
Did you also have to resort to cumbersome and tedious measures such as storing the first and the last part of your data separately, then producing the missing middle part, and finally putting it all together?
In this simple case, involving only one deferred insertion, you might still put up with this solution.
But if there is more than one deferred insertion, requiring the handling of many fragments of data, you will probably get annoyed and frustrated.
You might even have to struggle with limitations of the file system of your operating system, or handling so many files might considerably slow down your application due to excessive file input/output.
And if you dont know exactly beforehand how many deferred insertions there will be (if this depends dynamically on the data being processed), and/or if the pieces of data you need to insert need additional (nested) insertions themselves, things will get really tricky, messy and troublesome.
In such a case you might wonder if there wasnt an elegant solution to this problem.
This is where the "Data::Locations" module comes in: It handles such insertion points automatically for you, no matter how many and how deeply nested, purely in memory, requiring no (inherently slower) file input/output operations.
(The underlying operating system will automatically take care if the amount of data becomes too large to be handled fully in memory, though, by swapping out unneeded parts.)
Moreover, it also allows you to insert the same fragment of data into SEVERAL different places.
This increases space efficiency because the same data is stored in memory only once, but used multiple times.
Potential infinite recursion loops are detected automatically and refused.
In order to better understand the underlying concept, think of "Data::Locations" as virtual files with almost random access: You can write data to them, you can say "reserve some space here which I will fill in later", and continue writing data.
And you can of course also read from these virtual files, at any time, in order to see the data that a given virtual file currently contains.
When you are finished filling in all the different parts of your virtual file, you can write out its contents in flattened form to a physical, real file this time, or process it otherwise (purely in memory, if you wish).
You can also think of "Data::Locations" as bubbles and bubbles inside of other bubbles. You can inflate these bubbles in any arbitrary order you like through a straw (i.e., the bubbles object reference).
Note that this module handles your data completely transparently, which means that you can use it equally well for text AND binary data.
You might also be interested in knowing that this module and its concept have already been heavily used in the automatic code generation of large software projects.
Enhancements:
- Fixed test file "02___refcount.t" to auto-adjust the offset dealing with self-ties not incrementing
- the refcount in some Perl versions.
- Added a warning to "Makefile.PL" that Perl versions including and between v5.6.1 and v5.7.0 are not fully supported (test file "11_______dump.t" dumps core).
<<lessDid you already encounter the problem that you had to produce some data in a particular order, but that some piece of the data was still unavailable at the point in the sequence where it belonged and where it should have been produced?
Did you also have to resort to cumbersome and tedious measures such as storing the first and the last part of your data separately, then producing the missing middle part, and finally putting it all together?
In this simple case, involving only one deferred insertion, you might still put up with this solution.
But if there is more than one deferred insertion, requiring the handling of many fragments of data, you will probably get annoyed and frustrated.
You might even have to struggle with limitations of the file system of your operating system, or handling so many files might considerably slow down your application due to excessive file input/output.
And if you dont know exactly beforehand how many deferred insertions there will be (if this depends dynamically on the data being processed), and/or if the pieces of data you need to insert need additional (nested) insertions themselves, things will get really tricky, messy and troublesome.
In such a case you might wonder if there wasnt an elegant solution to this problem.
This is where the "Data::Locations" module comes in: It handles such insertion points automatically for you, no matter how many and how deeply nested, purely in memory, requiring no (inherently slower) file input/output operations.
(The underlying operating system will automatically take care if the amount of data becomes too large to be handled fully in memory, though, by swapping out unneeded parts.)
Moreover, it also allows you to insert the same fragment of data into SEVERAL different places.
This increases space efficiency because the same data is stored in memory only once, but used multiple times.
Potential infinite recursion loops are detected automatically and refused.
In order to better understand the underlying concept, think of "Data::Locations" as virtual files with almost random access: You can write data to them, you can say "reserve some space here which I will fill in later", and continue writing data.
And you can of course also read from these virtual files, at any time, in order to see the data that a given virtual file currently contains.
When you are finished filling in all the different parts of your virtual file, you can write out its contents in flattened form to a physical, real file this time, or process it otherwise (purely in memory, if you wish).
You can also think of "Data::Locations" as bubbles and bubbles inside of other bubbles. You can inflate these bubbles in any arbitrary order you like through a straw (i.e., the bubbles object reference).
Note that this module handles your data completely transparently, which means that you can use it equally well for text AND binary data.
You might also be interested in knowing that this module and its concept have already been heavily used in the automatic code generation of large software projects.
Enhancements:
- Fixed test file "02___refcount.t" to auto-adjust the offset dealing with self-ties not incrementing
- the refcount in some Perl versions.
- Added a warning to "Makefile.PL" that Perl versions including and between v5.6.1 and v5.7.0 are not fully supported (test file "11_______dump.t" dumps core).
Download (0.043MB)
Added: 2005-04-29 License: Artistic License Price:
1638 downloads
SoundTouch Sound Processing Library 1.3.0
SoundTouch Sound Processing Library is an open-source audio processing library. more>>
SoundTouch Sound Processing Library is an open-source audio processing library for changing the Tempo, Pitch and Playback Rates of audio streams or files:
- Tempo (time-stretch): Changes the sound to play at faster or slower speed than original, without affecting the sound pitch.
- Pitch (key) : Changes the sound pitch or key, without affecting the sound tempo or speed.
- Playback Rate : Changes both the sound tempo and pitch, as if an LP disc was played at wrong RPM rate.
Main features:
- Easy-to-use implementation of time-stretch, pitch-shift and sample rate transposing routines.
- High-performance object-oriented C++ implementation.
- Full source codes available for both the SoundTouch library and the example application.
- Clear and easy-to-use programming interface via a single C++ class.
- Supported audio data format : 16Bit integer or 32bit floating point PCM mono/stereo
- Capable of real-time audio stream processing:
- input/output latency max. ~ 100 ms.
- Processing 44.1kHz/16bit stereo sound in realtime requires a 133 Mhz Intel Pentium processor or better.
- Platform-independent implementation: The SoundTouch library can be compiled for any processor and OS platform supporting GNU C compiler (gcc) or Visual Studio, for example Win32, Linux, AIX.
- Additional assembler-level and Intel-MMX instruction set optimizations for Intel x86 compatible processors (Win32 & Linux platforms), offering several times increase in the processing performance.
- Compiled executable binaries available for Windows.
Enhancements:
- Add features/limitations/changes here
<<less- Tempo (time-stretch): Changes the sound to play at faster or slower speed than original, without affecting the sound pitch.
- Pitch (key) : Changes the sound pitch or key, without affecting the sound tempo or speed.
- Playback Rate : Changes both the sound tempo and pitch, as if an LP disc was played at wrong RPM rate.
Main features:
- Easy-to-use implementation of time-stretch, pitch-shift and sample rate transposing routines.
- High-performance object-oriented C++ implementation.
- Full source codes available for both the SoundTouch library and the example application.
- Clear and easy-to-use programming interface via a single C++ class.
- Supported audio data format : 16Bit integer or 32bit floating point PCM mono/stereo
- Capable of real-time audio stream processing:
- input/output latency max. ~ 100 ms.
- Processing 44.1kHz/16bit stereo sound in realtime requires a 133 Mhz Intel Pentium processor or better.
- Platform-independent implementation: The SoundTouch library can be compiled for any processor and OS platform supporting GNU C compiler (gcc) or Visual Studio, for example Win32, Linux, AIX.
- Additional assembler-level and Intel-MMX instruction set optimizations for Intel x86 compatible processors (Win32 & Linux platforms), offering several times increase in the processing performance.
- Compiled executable binaries available for Windows.
Enhancements:
- Add features/limitations/changes here
Download (0.42MB)
Added: 2006-02-15 License: GPL (GNU General Public License) Price:
1354 downloads
Java Parallel Processing Framework 1.0 Beta 1
Java Parallel Processing Framework is a set of tools and APIs to facilitate the parallelization of CPU intensive applications. more>>
Java Parallel Processing Framework is a set of tools and APIs to facilitate the parallelization of CPU intensive applications, and distribute their execution over a network of heterogenous nodes.
Java Parallel Processing Framework is intended to run in clusters and grids.
Main features:
- an API to delegate the processing of parallelized tasks to local and remote execution services
- a set of APIs and user interface tools to administrate and monitor execution services
- real-time adaptive load balancing capabilities
- scalability up to an arbitrary number of processing nodes
- support for failover and recovery
- limited intrusiveness for existing or legacy code
- a dynamic deployment mechanism, that enables the execution of new, or updated, code without having to deploy onto the grid
- fully documented APIs, administration guide and developer guide
- runs on any platform supporting Java 2 Platform Standard Edition 5.0 (J2SE 1.5)
Enhancements:
- JPPF is now licensed under the terms of the Apache License, Version 2.0. Starting from JPPF 1.0 beta1, all releases will be licensed under these terms.
- Prior versions will remain under the terms of the LGPL.
- For the first time, JPPF integrates seamlessly with J2EE. The JPPF Resource Adapter provides J2EE application servers with an access to native grid services.
- Numerous bug fixes, especially with regards to the distributed class loading mechanism.
<<lessJava Parallel Processing Framework is intended to run in clusters and grids.
Main features:
- an API to delegate the processing of parallelized tasks to local and remote execution services
- a set of APIs and user interface tools to administrate and monitor execution services
- real-time adaptive load balancing capabilities
- scalability up to an arbitrary number of processing nodes
- support for failover and recovery
- limited intrusiveness for existing or legacy code
- a dynamic deployment mechanism, that enables the execution of new, or updated, code without having to deploy onto the grid
- fully documented APIs, administration guide and developer guide
- runs on any platform supporting Java 2 Platform Standard Edition 5.0 (J2SE 1.5)
Enhancements:
- JPPF is now licensed under the terms of the Apache License, Version 2.0. Starting from JPPF 1.0 beta1, all releases will be licensed under these terms.
- Prior versions will remain under the terms of the LGPL.
- For the first time, JPPF integrates seamlessly with J2EE. The JPPF Resource Adapter provides J2EE application servers with an access to native grid services.
- Numerous bug fixes, especially with regards to the distributed class loading mechanism.
Download (7.8MB)
Added: 2007-07-31 License: The Apache License 2.0 Price:
816 downloads
Data::Type::Docs 0.01.15
Data::Type::Docs is a Perl module with the manual overview. more>>
Data::Type::Docs is a Perl module with the manual overview.
MANUALS
Data::Type::Docs::FAQ
Frequently asked questions.
Data::Type::Docs::FOP
Frequently occuring problems.
Data::Type::Docs::Howto
Point to point recipes how to get things done.
Data::Type::Docs::RFC
Exact API description. Startpoint for datatype developers.
NAVIGATION
First read the following paragraphs and then you may start study the Data::Type API.
<<lessMANUALS
Data::Type::Docs::FAQ
Frequently asked questions.
Data::Type::Docs::FOP
Frequently occuring problems.
Data::Type::Docs::Howto
Point to point recipes how to get things done.
Data::Type::Docs::RFC
Exact API description. Startpoint for datatype developers.
NAVIGATION
First read the following paragraphs and then you may start study the Data::Type API.
Download (0.069MB)
Added: 2006-10-12 License: Perl Artistic License Price:
1107 downloads
Data::Secs2 0.09
Data::Secs2 is a Perl module to pack, unpack, format, transform from Perl data SEMI E5-94 nested data. more>>
Data::Secs2 is a Perl module to pack, unpack, format, transform from Perl data SEMI E5-94 nested data.
SYNOPSIS
#####
# Subroutine interface
#
use Data::Secs2 qw(arrayify config listify neuterify numberify perlify
perl_typify secsify secs_elementify stringify textify transify);
@array = arrayify($ref, @options);
$old_value = config( $option );
$old_value = config( $option => $new_value);
$body = secs_elementify($format, $cells, @options);
@secs_obj = listify(@vars);
@secs_obj = neuterify($binary_secs, @options);
@vars = perlify(@secs_obj, @options);
$ref = perl_typify(@array, @options);
$ascii_secs = secsify( @secs_obj, @options);
$binary_secs = secsify( @secs_obj, type => binary);
$string = stringify(@arg, [@options]);
@secs_obj = transify($acsii_secs, @options);
#####
# Class, Object interface
#
# For class interface, use Data::Secs2 instead of $self
# use Data::Secs2;
#
$secs2 = Data::Secs2 # uses built-in config object
$secs2 = new Data::Secs2( @options );
@array = secs2->arrayify( $ref, @options );
$old_value = secs2->secs_config( $option);
$old_value = secs2->secs_config( $option => $new_value);
$body = secs2->secs_elementify($format, $cells, @options);
@secs_obj = secs2->listify(@vars, @options);
@secs_obj = secs2->neuterify($binary_secs, @options);
@vars = secs2->perlify(@secs_obj, @options);
$ref = secs2->perl_typify(@array, @options);
$ascii_secs = secs2->secsify( @secs_obj, @options);
$binary_secs = secs2->secsify( @secs_obj, type => binary);
$body = secs2->stringify( @arg );
@secs_obj = secs2->transify($acsii_secs, @options);
Generally, if a subroutine will process a list of options, @options, that subroutine will also process an array reference, @options, [@options], or hash reference, %options, {@options}. If a subroutine will process an array reference, @options, [@options], that subroutine will also process a hash reference, %options, {@options}. See the description for a subroutine for details and exceptions.
<<lessSYNOPSIS
#####
# Subroutine interface
#
use Data::Secs2 qw(arrayify config listify neuterify numberify perlify
perl_typify secsify secs_elementify stringify textify transify);
@array = arrayify($ref, @options);
$old_value = config( $option );
$old_value = config( $option => $new_value);
$body = secs_elementify($format, $cells, @options);
@secs_obj = listify(@vars);
@secs_obj = neuterify($binary_secs, @options);
@vars = perlify(@secs_obj, @options);
$ref = perl_typify(@array, @options);
$ascii_secs = secsify( @secs_obj, @options);
$binary_secs = secsify( @secs_obj, type => binary);
$string = stringify(@arg, [@options]);
@secs_obj = transify($acsii_secs, @options);
#####
# Class, Object interface
#
# For class interface, use Data::Secs2 instead of $self
# use Data::Secs2;
#
$secs2 = Data::Secs2 # uses built-in config object
$secs2 = new Data::Secs2( @options );
@array = secs2->arrayify( $ref, @options );
$old_value = secs2->secs_config( $option);
$old_value = secs2->secs_config( $option => $new_value);
$body = secs2->secs_elementify($format, $cells, @options);
@secs_obj = secs2->listify(@vars, @options);
@secs_obj = secs2->neuterify($binary_secs, @options);
@vars = secs2->perlify(@secs_obj, @options);
$ref = secs2->perl_typify(@array, @options);
$ascii_secs = secs2->secsify( @secs_obj, @options);
$binary_secs = secs2->secsify( @secs_obj, type => binary);
$body = secs2->stringify( @arg );
@secs_obj = secs2->transify($acsii_secs, @options);
Generally, if a subroutine will process a list of options, @options, that subroutine will also process an array reference, @options, [@options], or hash reference, %options, {@options}. If a subroutine will process an array reference, @options, [@options], that subroutine will also process a hash reference, %options, {@options}. See the description for a subroutine for details and exceptions.
Download (0.096MB)
Added: 2007-02-15 License: Perl Artistic License Price:
981 downloads
DataDrafter Personal Edition 1.1
DataDrafter is a new and unique program that allows you to create your own interactive graphics applications. more>>
DataDrafter project is a new and unique program that allows you to create your own interactive graphics applications with data editing, navigation, search and reporting features built in. Use DataDrafter instead of Visio for example, to create diagrams, maps and technical drawings that are interactive and fully integrated with your data.
Your visualizations become real applications instead of just wall paper. You can even share your graphics and data as an application on the web or on your own intranet.
If you use a combination of drawings and spreadsheets to manage data, try using DataDrafter instead.
The Integrated Data/Graphics Environment ensures that both your data and graphics stay synchronized. With DataDrafter your drawings become an interactive part of your data management process. Why put all that effort into your drawings just to hang them on the wall? Put them to work for you and others while keeping them up to date with DataDrafter.
<<lessYour visualizations become real applications instead of just wall paper. You can even share your graphics and data as an application on the web or on your own intranet.
If you use a combination of drawings and spreadsheets to manage data, try using DataDrafter instead.
The Integrated Data/Graphics Environment ensures that both your data and graphics stay synchronized. With DataDrafter your drawings become an interactive part of your data management process. Why put all that effort into your drawings just to hang them on the wall? Put them to work for you and others while keeping them up to date with DataDrafter.
Download (MB)
Added: 2006-05-25 License: Freeware Price:
1263 downloads
Data::BenchmarkResults 0.01
Data::BenchmarkResults is a Perl extension for averaging and comparing multiple benchmark runs. more>>
Data::BenchmarkResults is a Perl extension for averaging and comparing multiple benchmark runs.
SYNOPSIS
use Data::BenchmarkResults;
$conditionA_results = new Data::BenchmarkResults;
$conditionB_results = new Data::BenchmarkResults;
#Load test result runs for the first condition
$conditionA_results->add_result_set("test1","run1",@data1);
$conditionA_results->add_result_set("test2","run1",@data2);
$conditionA_results->add_result_set("test1","run2",@data3);
$conditionA_results->add_result_set("test2","run2",@data4);
#Load test result runs for the second condition
$conditionB_results->add_result_set("test1","run1",@data5);
$conditionB_results->add_result_set("test2","run2",@data6);
$conditionB_results->add_result_set("test1","run1",@data7);
$conditionB_results->add_result_set("test2","run2",@data8);
#Average (mean average) the results of all the the runs of test1
# w/o tossing the highest and lowest values (replace the 0 with 1to
# toss the highest and lowest values
my $computed = $conditionA_results->process_result_set("test1","mean",0);
my $computed2 = $conditionB_results->process_result_set("test1","mean",0);
#OR process all of the tests at once (tossing the highest and lowest value) :
$conditionA_results->process_all_result_sets("mean",1);
$conditionB_results->process_all_result_sets("mean",1);
#Print out all of the processed test results
print "Condition A results.... nn"
$conditionA_results->print_calculated_sets;
print "Condition B results.... nn"
$conditionB_results->print_calculated_sets;
#Compare results of test1 of condition B against those with condition A
# as a percentage change from A to B
my $compared = $conditionB_results->compare_result_set($conditionA_results,"test1");
#OR compare all the processed test results from one condition to those of another
my $total_comparison = $conditionB_results->compare_all_result_sets($conditionA_results);
<<lessSYNOPSIS
use Data::BenchmarkResults;
$conditionA_results = new Data::BenchmarkResults;
$conditionB_results = new Data::BenchmarkResults;
#Load test result runs for the first condition
$conditionA_results->add_result_set("test1","run1",@data1);
$conditionA_results->add_result_set("test2","run1",@data2);
$conditionA_results->add_result_set("test1","run2",@data3);
$conditionA_results->add_result_set("test2","run2",@data4);
#Load test result runs for the second condition
$conditionB_results->add_result_set("test1","run1",@data5);
$conditionB_results->add_result_set("test2","run2",@data6);
$conditionB_results->add_result_set("test1","run1",@data7);
$conditionB_results->add_result_set("test2","run2",@data8);
#Average (mean average) the results of all the the runs of test1
# w/o tossing the highest and lowest values (replace the 0 with 1to
# toss the highest and lowest values
my $computed = $conditionA_results->process_result_set("test1","mean",0);
my $computed2 = $conditionB_results->process_result_set("test1","mean",0);
#OR process all of the tests at once (tossing the highest and lowest value) :
$conditionA_results->process_all_result_sets("mean",1);
$conditionB_results->process_all_result_sets("mean",1);
#Print out all of the processed test results
print "Condition A results.... nn"
$conditionA_results->print_calculated_sets;
print "Condition B results.... nn"
$conditionB_results->print_calculated_sets;
#Compare results of test1 of condition B against those with condition A
# as a percentage change from A to B
my $compared = $conditionB_results->compare_result_set($conditionA_results,"test1");
#OR compare all the processed test results from one condition to those of another
my $total_comparison = $conditionB_results->compare_all_result_sets($conditionA_results);
Download (0.009MB)
Added: 2007-08-16 License: Perl Artistic License Price:
799 downloads
Dataxi 1.0.1
Dataxi project is a collection of tools for developing form-based information systems. more>>
Dataxi project is a collection of tools for developing form-based information systems. Dataxi enables one to quickly build an application based on forms with which the user can access the underlying database in order to query, read, edit and write. Dataxi is the link between the user interface and the database.
Dataxi is an OS and enviroment independent product. It follows HTML and SQL standards to such extend that interoperability with all browsers and database backends should be supported.
Dataxi runs on all major operating systems as is or only with minor changes in ini -files.
The purpose of Dataxi is to take the pain away from the most boring phase in the data access application development: user interface designing and programming. Ones you have defined the layout of the form and location for columns, you are done, unless you prefer setting data validation and output format features and other niceties.
A database is a structured collection of data. It may be anything from a simple shopping list to a picture gallery or the vast amounts of information in a corporate network. To add, access, and process data stored in a computer database, you need a database management system such as MySQL. Since computers are very good at handling large amounts of data, database management plays a central role in computing, as stand-alone utilities, or as parts of other applications.
Enhancements:
- This version works with both PHP 4 and 5.
<<lessDataxi is an OS and enviroment independent product. It follows HTML and SQL standards to such extend that interoperability with all browsers and database backends should be supported.
Dataxi runs on all major operating systems as is or only with minor changes in ini -files.
The purpose of Dataxi is to take the pain away from the most boring phase in the data access application development: user interface designing and programming. Ones you have defined the layout of the form and location for columns, you are done, unless you prefer setting data validation and output format features and other niceties.
A database is a structured collection of data. It may be anything from a simple shopping list to a picture gallery or the vast amounts of information in a corporate network. To add, access, and process data stored in a computer database, you need a database management system such as MySQL. Since computers are very good at handling large amounts of data, database management plays a central role in computing, as stand-alone utilities, or as parts of other applications.
Enhancements:
- This version works with both PHP 4 and 5.
Download (1.3MB)
Added: 2007-04-17 License: GPL (GNU General Public License) Price:
920 downloads
Data::Str2Num 0.07
Data::Str2Num - int str to int; float str to float, else undef. more>>
Data::Str2Num - int str to int; float str to float, else undef.
SYNOPSIS
#####
# Subroutine interface
#
use Data::Str2Num qw(config str2float str2int str2integer);
$float = str2float($string, [@options]);
(@strings, @floats) = str2float(@strings, [@options]);
$integer = $secspack->str2int($string);
$integer = str2integer($string, [@options]);
(@strings, @integers) = str2int(@strings, [@options]);
#####
# Class, Object interface
#
# For class interface, use Data::SecsPack instead of $self
#
use Data::Str2Num;
$str2num = Data::Str2Num;
$str2num = new Data::Str2Num;
$float = $secspack->str2float($string, [@options]);
(@strings, @floats) = $secspack->str2float(@strings, [@options]);
$integer = $secspack->str2int($string);
$integer = $secspack->str2integer($string, [@options])
(@strings, @integers) = $secspack->str2int(@strings, [@options]);
Generally, if a subroutine will process a list of options, @options, that subroutine will also process an array reference, @options, [@options], or hash reference, %options, {@options}. If a subroutine will process an array reference, @options, [@options], that subroutine will also process a hash reference, %options, {@options}. See the description for a subroutine for details and exceptions.
<<lessSYNOPSIS
#####
# Subroutine interface
#
use Data::Str2Num qw(config str2float str2int str2integer);
$float = str2float($string, [@options]);
(@strings, @floats) = str2float(@strings, [@options]);
$integer = $secspack->str2int($string);
$integer = str2integer($string, [@options]);
(@strings, @integers) = str2int(@strings, [@options]);
#####
# Class, Object interface
#
# For class interface, use Data::SecsPack instead of $self
#
use Data::Str2Num;
$str2num = Data::Str2Num;
$str2num = new Data::Str2Num;
$float = $secspack->str2float($string, [@options]);
(@strings, @floats) = $secspack->str2float(@strings, [@options]);
$integer = $secspack->str2int($string);
$integer = $secspack->str2integer($string, [@options])
(@strings, @integers) = $secspack->str2int(@strings, [@options]);
Generally, if a subroutine will process a list of options, @options, that subroutine will also process an array reference, @options, [@options], or hash reference, %options, {@options}. If a subroutine will process an array reference, @options, [@options], that subroutine will also process a hash reference, %options, {@options}. See the description for a subroutine for details and exceptions.
Download (0.055MB)
Added: 2007-02-15 License: Perl Artistic License Price:
981 downloads
Data::SecsPack 0.06
Data::SecsPack is a Perl module pack and unpack numbers in accordance with SEMI E5-94. more>>
Data::SecsPack is a Perl module pack and unpack numbers in accordance with SEMI E5-94.
SYNOPSIS
#####
# Subroutine interface
#
use Data::SecsPack qw(bytes2int config float2binary
ifloat2binary int2bytes
pack_float pack_int pack_num
str2float str2int
unpack_float unpack_int unpack_num);
$big_integer = bytes2int( @bytes );
$old_value = config( $option );
$old_value = config( $option => $new_value);
($binary_magnitude, $binary_exponent) = float2binary($magnitude, $exponent, @options);
($binary_magnitude, $binary_exponent) = ifloat2binary($imagnitude, $iexponent, @options);
@bytes = int2bytes( $big_integer );
($format, $floats) = pack_float($format, @string_floats, [@options]);
($format, $integers) = pack_int($format, @string_integers, [@options]);
($format, $numbers, @string) = pack_num($format, @strings, [@options]);
$float = str2float($string, [@options]);
(@strings, @floats) = str2float(@strings, [@options]);
$integer = str2int($string, [@options]);
(@strings, @integers) = str2int(@strings, [@options]);
@ingegers = unpack_int($format, $integer_string, @options);
@floats = unpack_float($format, $float_string, @options);
@numbers = unpack_num($format, $number_string), @options;
#####
# Class, Object interface
#
# For class interface, use Data::SecsPack instead of $self
#
use Data::SecsPack;
$secspack = Data::SecsPack; # uses built-in config object
$secspack = new Data::SecsPack(@options);
$big_integer = bytes2int( @bytes );
($binary_magnitude, $binary_exponent) = $secspack->float2binary($magnitude, $exponent, @options);
($binary_magnitude, $binary_exponent) = $secspack->ifloat2binary($imagnitude, $iexponent, @options);
@bytes = $secspack->int2bytes( $big_integer );
($format, $floats) = $secspack->pack_float($format, @string_integers, [@options]);
($format, $integers) = $secspack->pack_int($format, @string_integers, [@options]);
($format, $numbers, @strings) = $secspack->pack_num($format, @strings, [@options]);
$integer = $secspack->str2int($string, [@options])
(@strings, @integers) = $secspack->str2int(@strings, [@options]);
$float = $secspack->str2float($string, [@options]);
(@strings, @floats) = $secspack->str2float(@strings, [@options]);
@ingegers = $secspack->unpack_int($format, $integer_string, @options);
@floats = $secspack->unpack_float($format, $float_string, @options);
@numbers = $secspack->unpack_num($format, $number_string, @options);
Generally, if a subroutine will process a list of options, @options, that subroutine will also process an array reference, @options, [@options], or hash reference, %options, {@options}. If a subroutine will process an array reference, @options, [@options], that subroutine will also process a hash reference, %options, {@options}. See the description for a subroutine for details and exceptions.
The subroutines in the Data::SecsPack module packs and unpacks numbers in accordance with SEMI E5-94. The E5-94 establishes the standard for communication between the equipment used to fabricate semiconductors and the host computer that controls the fabrication. The equipment in a semiconductor factory (fab) or any other fab contains every conceivable known microprocessor and operating system known to man. And there are a lot of specialize real-time embedded processors and speciallize real-time embedded operating systems in addition to the those in the PC world.
The communcication between host and equipment used packed nested list data structures that include arrays of characters, integers and floats. The standard has been in place and widely used in China, Germany, Korea, Japan, France, Italy and the most remote corners on this planent for decades. The basic data structure and packed data formats have not changed for decades.
This stands in direct contradiction to the common conceptions of many in the Perl community and most other communities. The following quote is taken from page 761, Programming Perl third edition, discussing the pack subroutine:
"Floating-point numbers are in the native machine format only. Because of the variety of floating format and lack of a standard "network" represenation, no facility for interchange has been made. This means that packed floating-point data written on one machine may not be readable on another. That is a problem even when both machines use IEEE floating-point arithmetic, because the endian-ness of memory representation is not part of the IEEE spec."
There are a lot of things that go over the net that have industry or military standards but no RFCs. So unless you dig them out, you will never know they exist. While RFC and military standards may be freely copyied, industry standards are usually copyrighted. This means if you want to read the standard, you have to pay whatever the market bears. ISO standards, SEMI stardards, American National Standards, IEEE standards beside being boring are expensive. In other words, you do not see them flying out the door at the local Barnes and Nobles. In fact, you will not even find them inside the door.
It very easy to run these non RFC standard protocols over the net. Out of 64,000 ports, pick a port of opportunity (hopefully not one of those low RFC preassigned ports) and configure the equipment and host to the same IP and port. Many times the software will allow a remote console that is watch only. The watch console may even be a web server on port 80. If there is a remote soft console, you can call up or e-mail the equipment manufacturers engineer in say Glouster, MA, USA and tell him the IP and port so he can watch his manchine mangle a cassette of wafers with a potential retail value of half million dollars.
SEMI E5-94 and their precessors do standardize the endian-ness of floating point, the packing of nested data, used in many programming languages, and much, much more. The endian-ness of SEMI E5-94 is the first MSB byte, floats sign bit first. Maybe this is because it makes it easy to spot numbers in a packed data structure.
The nested data has many performance advantages over the common SQL culture of viewing and representing data as tables. The automated fabs of the world make use of SEMI E5-94 nested data not only for real-time communication (TCP/IP RS-2332 etc) between machines but also for snail-time processing as such things as logs and performance data.
Does this standard communications protocol ensure that everything goes smoothly without any glitches with this wild mixture of hardware and software talking to each other in real time? Of course not. Bytes get reverse. Data gets jumbled from point A to point B. Machine time to test software is non-existance. Big ticket, multi-million dollar fab equipment has to work to earn its keep. And, then there is the everyday business of suiting up, with humblizing hair nets, going through air and other showers with your favorite or not so favorite co-worker just to get into the clean room. And make sure not to do anything that will scatch a wafer with a lot of Intel Pentiums on them. It is totally amazing that the product does get out the door.
<<lessSYNOPSIS
#####
# Subroutine interface
#
use Data::SecsPack qw(bytes2int config float2binary
ifloat2binary int2bytes
pack_float pack_int pack_num
str2float str2int
unpack_float unpack_int unpack_num);
$big_integer = bytes2int( @bytes );
$old_value = config( $option );
$old_value = config( $option => $new_value);
($binary_magnitude, $binary_exponent) = float2binary($magnitude, $exponent, @options);
($binary_magnitude, $binary_exponent) = ifloat2binary($imagnitude, $iexponent, @options);
@bytes = int2bytes( $big_integer );
($format, $floats) = pack_float($format, @string_floats, [@options]);
($format, $integers) = pack_int($format, @string_integers, [@options]);
($format, $numbers, @string) = pack_num($format, @strings, [@options]);
$float = str2float($string, [@options]);
(@strings, @floats) = str2float(@strings, [@options]);
$integer = str2int($string, [@options]);
(@strings, @integers) = str2int(@strings, [@options]);
@ingegers = unpack_int($format, $integer_string, @options);
@floats = unpack_float($format, $float_string, @options);
@numbers = unpack_num($format, $number_string), @options;
#####
# Class, Object interface
#
# For class interface, use Data::SecsPack instead of $self
#
use Data::SecsPack;
$secspack = Data::SecsPack; # uses built-in config object
$secspack = new Data::SecsPack(@options);
$big_integer = bytes2int( @bytes );
($binary_magnitude, $binary_exponent) = $secspack->float2binary($magnitude, $exponent, @options);
($binary_magnitude, $binary_exponent) = $secspack->ifloat2binary($imagnitude, $iexponent, @options);
@bytes = $secspack->int2bytes( $big_integer );
($format, $floats) = $secspack->pack_float($format, @string_integers, [@options]);
($format, $integers) = $secspack->pack_int($format, @string_integers, [@options]);
($format, $numbers, @strings) = $secspack->pack_num($format, @strings, [@options]);
$integer = $secspack->str2int($string, [@options])
(@strings, @integers) = $secspack->str2int(@strings, [@options]);
$float = $secspack->str2float($string, [@options]);
(@strings, @floats) = $secspack->str2float(@strings, [@options]);
@ingegers = $secspack->unpack_int($format, $integer_string, @options);
@floats = $secspack->unpack_float($format, $float_string, @options);
@numbers = $secspack->unpack_num($format, $number_string, @options);
Generally, if a subroutine will process a list of options, @options, that subroutine will also process an array reference, @options, [@options], or hash reference, %options, {@options}. If a subroutine will process an array reference, @options, [@options], that subroutine will also process a hash reference, %options, {@options}. See the description for a subroutine for details and exceptions.
The subroutines in the Data::SecsPack module packs and unpacks numbers in accordance with SEMI E5-94. The E5-94 establishes the standard for communication between the equipment used to fabricate semiconductors and the host computer that controls the fabrication. The equipment in a semiconductor factory (fab) or any other fab contains every conceivable known microprocessor and operating system known to man. And there are a lot of specialize real-time embedded processors and speciallize real-time embedded operating systems in addition to the those in the PC world.
The communcication between host and equipment used packed nested list data structures that include arrays of characters, integers and floats. The standard has been in place and widely used in China, Germany, Korea, Japan, France, Italy and the most remote corners on this planent for decades. The basic data structure and packed data formats have not changed for decades.
This stands in direct contradiction to the common conceptions of many in the Perl community and most other communities. The following quote is taken from page 761, Programming Perl third edition, discussing the pack subroutine:
"Floating-point numbers are in the native machine format only. Because of the variety of floating format and lack of a standard "network" represenation, no facility for interchange has been made. This means that packed floating-point data written on one machine may not be readable on another. That is a problem even when both machines use IEEE floating-point arithmetic, because the endian-ness of memory representation is not part of the IEEE spec."
There are a lot of things that go over the net that have industry or military standards but no RFCs. So unless you dig them out, you will never know they exist. While RFC and military standards may be freely copyied, industry standards are usually copyrighted. This means if you want to read the standard, you have to pay whatever the market bears. ISO standards, SEMI stardards, American National Standards, IEEE standards beside being boring are expensive. In other words, you do not see them flying out the door at the local Barnes and Nobles. In fact, you will not even find them inside the door.
It very easy to run these non RFC standard protocols over the net. Out of 64,000 ports, pick a port of opportunity (hopefully not one of those low RFC preassigned ports) and configure the equipment and host to the same IP and port. Many times the software will allow a remote console that is watch only. The watch console may even be a web server on port 80. If there is a remote soft console, you can call up or e-mail the equipment manufacturers engineer in say Glouster, MA, USA and tell him the IP and port so he can watch his manchine mangle a cassette of wafers with a potential retail value of half million dollars.
SEMI E5-94 and their precessors do standardize the endian-ness of floating point, the packing of nested data, used in many programming languages, and much, much more. The endian-ness of SEMI E5-94 is the first MSB byte, floats sign bit first. Maybe this is because it makes it easy to spot numbers in a packed data structure.
The nested data has many performance advantages over the common SQL culture of viewing and representing data as tables. The automated fabs of the world make use of SEMI E5-94 nested data not only for real-time communication (TCP/IP RS-2332 etc) between machines but also for snail-time processing as such things as logs and performance data.
Does this standard communications protocol ensure that everything goes smoothly without any glitches with this wild mixture of hardware and software talking to each other in real time? Of course not. Bytes get reverse. Data gets jumbled from point A to point B. Machine time to test software is non-existance. Big ticket, multi-million dollar fab equipment has to work to earn its keep. And, then there is the everyday business of suiting up, with humblizing hair nets, going through air and other showers with your favorite or not so favorite co-worker just to get into the clean room. And make sure not to do anything that will scatch a wafer with a lot of Intel Pentiums on them. It is totally amazing that the product does get out the door.
Download (0.10MB)
Added: 2007-01-15 License: Perl Artistic License Price:
1014 downloads
Data::FormValidator::Constraints 4.40
Data::FormValidator::Constraints is a Perl module with basic sets of constraints on input profile. more>>
Data::FormValidator::Constraints is a Perl module with basic sets of constraints on input profile.
SYNOPSIS
use Data::FormValidator::Constraints qw(:all);
In an Data::FormValidator profile:
constraint_methods => {
email => email(),
fax => american_phone(),
phone => american_phone(),
state => state(),
},
These are the builtin constraints that can be specified by name in the input profiles.
Be sure to check out the SEE ALSO section for even more pre-packaged constraints you can use.
<<lessSYNOPSIS
use Data::FormValidator::Constraints qw(:all);
In an Data::FormValidator profile:
constraint_methods => {
email => email(),
fax => american_phone(),
phone => american_phone(),
state => state(),
},
These are the builtin constraints that can be specified by name in the input profiles.
Be sure to check out the SEE ALSO section for even more pre-packaged constraints you can use.
Download (0.086MB)
Added: 2006-10-04 License: Perl Artistic License Price:
1115 downloads
Data::Serializer 0.41
Data::Serializer package contains modules that serialize data structures. more>>
Data::Serializer package contains modules that serialize data structures.
SYNOPSIS
use Data::Serializer;
$obj = Data::Serializer->new();
$obj = Data::Serializer->new(
serializer => Storable,
digester => MD5,
cipher => DES,
secret => my secret,
compress => 1,
);
$serialized = $obj->serialize({a => [1,2,3],b => 5});
$deserialized = $obj->deserialize($serialized);
print "$deserialized->{b}n";
Provides a unified interface to the various serializing modules currently available. Adds the functionality of both compression and encryption.
EXAMPLES
Please see Data::Serializer::Cookbook(3)
METHODS
new - constructor
$obj = Data::Serializer->new();
$obj = Data::Serializer->new(
serializer => Data::Dumper,
digester => SHA-256,
cipher => Blowfish,
secret => undef,
portable => 1,
compress => 0,
serializer_token => 1,
options => {},
);
new is the constructor object for Data::Serializer objects.
The default serializer is Data::Dumper
The default digester is SHA-256
The default cipher is Blowfish
The default secret is undef
The default portable is 1
The default encoding is hex
The default compress is 0
The default compressor is Compress::Zlib
The default serializer_token is 1
The default options is {} (pass nothing on to serializer)
serialize - serialize reference
$serialized = $obj->serialize({a => [1,2,3],b => 5});
Serializes the reference specified.
Will compress if compress is a true value.
Will encrypt if secret is defined.
deserialize - deserialize reference
$deserialized = $obj->deserialize($serialized);
Reverses the process of serialization and returns a copy of the original serialized reference.
freeze - synonym for serialize
$serialized = $obj->freeze({a => [1,2,3],b => 5});
thaw - synonym for deserialize
$deserialized = $obj->thaw($serialized);
raw_serialize - serialize reference in raw form
$serialized = $obj->raw_serialize({a => [1,2,3],b => 5});
This is a straight pass through to the underlying serializer, nothing else is done. (no encoding, encryption, compression, etc)
raw_deserialize - deserialize reference in raw form
$deserialized = $obj->raw_deserialize($serialized);
This is a straight pass through to the underlying serializer, nothing else is done. (no encoding, encryption, compression, etc)
secret - specify secret for use with encryption
$obj->secret(mysecret);
Changes setting of secret for the Data::Serializer object. Can also be set in the constructor. If specified than the object will utilize encryption.
portable - encodes/decodes serialized data
Uses encoding method to ascii armor serialized data
Aids in the portability of serialized data.
compress - compression of data
Compresses serialized data. Default is not to use it. Will compress if set to a true value $obj->compress(1);
serializer - change the serializer
Currently have 8 supported serializers: Storable, FreezeThaw, Data::Denter, Config::General, YAML, PHP::Serialization, XML::Dumper, and Data::Dumper.
Default is to use Data::Dumper.
Each serializer has its own caveats about usage especially when dealing with cyclical data structures or CODE references. Please see the appropriate documentation in those modules for further information.
cipher - change the cipher method
Utilizes Crypt::CBC and can support any cipher method that it supports.
digester - change digesting method
Uses Digest so can support any digesting method that it supports. Digesting function is used internally by the encryption routine as part of data verification.
compressor - changes compresing module
This method is included for possible future inclusion of alternate compression method Currently Compress::Zlib is the only supported compressor.
encoding - change encoding method
Encodes data structure in ascii friendly manner. Currently the only valid options are hex, or b64.
The b64 option uses Base64 encoding provided by MIME::Base64, but strips out newlines.
serializer_token - add usage hint to data
Data::Serializer prepends a token that identifies what was used to process its data. This is used internally to allow runtime determination of how to extract Serialized data. Disabling this feature is not recommended.
options - pass options through to underlying serializer
Currently is only supported by Config::General, and XML::Dumper.
my $obj = Data::Serializer->new(serializer => Config::General,
options => {
-LowerCaseNames => 1,
-UseApacheInclude => 1,
-MergeDuplicateBlocks => 1,
-AutoTrue => 1,
-InterPolateVars => 1
},
) or die "$!n";
or
my $obj = Data::Serializer->new(serializer => XML::Dumper,
options => { dtd => 1, }
) or die "$!n";
store - serialize data and write it to a file (or file handle)
$obj->store({a => [1,2,3],b => 5},$file, [$mode, $perm]);
or
$obj->store({a => [1,2,3],b => 5},$fh);
Serializes the reference specified using the serialize method and writes it out to the specified file or filehandle.
If a file path is specified you may specify an optional mode and permission as the next two arguments. See IO::File for examples.
Trips an exception if it is unable to write to the specified file.
retrieve - read data from file (or file handle) and return it after deserialization
my $ref = $obj->retrieve($file);
or
my $ref = $obj->retrieve($fh);
Reads first line of supplied file or filehandle and returns it deserialized.
<<lessSYNOPSIS
use Data::Serializer;
$obj = Data::Serializer->new();
$obj = Data::Serializer->new(
serializer => Storable,
digester => MD5,
cipher => DES,
secret => my secret,
compress => 1,
);
$serialized = $obj->serialize({a => [1,2,3],b => 5});
$deserialized = $obj->deserialize($serialized);
print "$deserialized->{b}n";
Provides a unified interface to the various serializing modules currently available. Adds the functionality of both compression and encryption.
EXAMPLES
Please see Data::Serializer::Cookbook(3)
METHODS
new - constructor
$obj = Data::Serializer->new();
$obj = Data::Serializer->new(
serializer => Data::Dumper,
digester => SHA-256,
cipher => Blowfish,
secret => undef,
portable => 1,
compress => 0,
serializer_token => 1,
options => {},
);
new is the constructor object for Data::Serializer objects.
The default serializer is Data::Dumper
The default digester is SHA-256
The default cipher is Blowfish
The default secret is undef
The default portable is 1
The default encoding is hex
The default compress is 0
The default compressor is Compress::Zlib
The default serializer_token is 1
The default options is {} (pass nothing on to serializer)
serialize - serialize reference
$serialized = $obj->serialize({a => [1,2,3],b => 5});
Serializes the reference specified.
Will compress if compress is a true value.
Will encrypt if secret is defined.
deserialize - deserialize reference
$deserialized = $obj->deserialize($serialized);
Reverses the process of serialization and returns a copy of the original serialized reference.
freeze - synonym for serialize
$serialized = $obj->freeze({a => [1,2,3],b => 5});
thaw - synonym for deserialize
$deserialized = $obj->thaw($serialized);
raw_serialize - serialize reference in raw form
$serialized = $obj->raw_serialize({a => [1,2,3],b => 5});
This is a straight pass through to the underlying serializer, nothing else is done. (no encoding, encryption, compression, etc)
raw_deserialize - deserialize reference in raw form
$deserialized = $obj->raw_deserialize($serialized);
This is a straight pass through to the underlying serializer, nothing else is done. (no encoding, encryption, compression, etc)
secret - specify secret for use with encryption
$obj->secret(mysecret);
Changes setting of secret for the Data::Serializer object. Can also be set in the constructor. If specified than the object will utilize encryption.
portable - encodes/decodes serialized data
Uses encoding method to ascii armor serialized data
Aids in the portability of serialized data.
compress - compression of data
Compresses serialized data. Default is not to use it. Will compress if set to a true value $obj->compress(1);
serializer - change the serializer
Currently have 8 supported serializers: Storable, FreezeThaw, Data::Denter, Config::General, YAML, PHP::Serialization, XML::Dumper, and Data::Dumper.
Default is to use Data::Dumper.
Each serializer has its own caveats about usage especially when dealing with cyclical data structures or CODE references. Please see the appropriate documentation in those modules for further information.
cipher - change the cipher method
Utilizes Crypt::CBC and can support any cipher method that it supports.
digester - change digesting method
Uses Digest so can support any digesting method that it supports. Digesting function is used internally by the encryption routine as part of data verification.
compressor - changes compresing module
This method is included for possible future inclusion of alternate compression method Currently Compress::Zlib is the only supported compressor.
encoding - change encoding method
Encodes data structure in ascii friendly manner. Currently the only valid options are hex, or b64.
The b64 option uses Base64 encoding provided by MIME::Base64, but strips out newlines.
serializer_token - add usage hint to data
Data::Serializer prepends a token that identifies what was used to process its data. This is used internally to allow runtime determination of how to extract Serialized data. Disabling this feature is not recommended.
options - pass options through to underlying serializer
Currently is only supported by Config::General, and XML::Dumper.
my $obj = Data::Serializer->new(serializer => Config::General,
options => {
-LowerCaseNames => 1,
-UseApacheInclude => 1,
-MergeDuplicateBlocks => 1,
-AutoTrue => 1,
-InterPolateVars => 1
},
) or die "$!n";
or
my $obj = Data::Serializer->new(serializer => XML::Dumper,
options => { dtd => 1, }
) or die "$!n";
store - serialize data and write it to a file (or file handle)
$obj->store({a => [1,2,3],b => 5},$file, [$mode, $perm]);
or
$obj->store({a => [1,2,3],b => 5},$fh);
Serializes the reference specified using the serialize method and writes it out to the specified file or filehandle.
If a file path is specified you may specify an optional mode and permission as the next two arguments. See IO::File for examples.
Trips an exception if it is unable to write to the specified file.
retrieve - read data from file (or file handle) and return it after deserialization
my $ref = $obj->retrieve($file);
or
my $ref = $obj->retrieve($fh);
Reads first line of supplied file or filehandle and returns it deserialized.
Download (0.025MB)
Added: 2007-07-12 License: Perl Artistic License Price:
834 downloads
Radar Tools 0.18
Radar Tools is an advanced SAR remote sensing image processing software. more>>
Radar Tools in short RAT is a small collection of tools for processing SAR (synthetic aperture radar) remote sensing data, packed together in a nice graphical user interface.
Our motivation to start the development of RAT is that modern remote sensing software like Erdas Image or ENVI include only some basic SAR functionality. Advanced algorithms have to be implemented by oneself.
So we descided to start the development of RAT. RAT should bring modern SAR algorithms to a wider user-base by simplifying in particular the data handling and processing of complex SAR data.
RAT is planned as an ongoing community effort, i.e. there will be no final version with a certain functionality. It is our idea to include more and more SAR tools in future and to make them freely available to the scientific community.
We of course also hope for external contributions. Because of this, the programming interface of RAT is kept quite simple and adding own functions is quite easy. Function templates are included in the distribution and a step-by-step description of how to program a RAT module will appear soon in the documentation.
Main features:
General features
- Cross-platform (Unix, Windows, Linux & Mac OSX)
- Free software, no commercial software license needed (when using the IDL-VM version)
- Availability of the complete source code
- Modular design, easy to extend by own functions
- Small memory footprint even when processing large images (vertical tiling)
- No limitation on the image size
- Keep track of data representation changes during image processing
- Optimised preview on screen while calculations are done in full resolution
- Native import routines for E-SAR (DLR) and ENVISAT-IMS (ESA) data
- Export possibility to generic graphic formats (png, jpg & tiff)
- Undo function for the last processing step
Generic image manipulation
- Resize, presumming & cut region
- Zooming of an area of interest
- Mirror vertical and horizontal
- Binary transforms
Single channel SAR
- SAR speckle filtering (Boxcar, Median, Gauss, Kuan, Frost, MAP Lee, refined Lee, Lee-Sigma)
- Edge detection (RoA, MSP-RoA, Sobel, Roberts)
- Co-occurance texture features, variation coefficient
- Point and distributed target analysis
- Generic slant-to-ground range projection
SAR polarimetry
- Polarimetric point target analysis
- Polarimetric speckle filtering (Boxcar, Lee, refined Lee)
- Polarimetric CFSAR edge detection
- Calculation of interchannel ratios, correlation & phase differences
- Formation of covariance and coherency matrix, span calculation
- Polarimetric basis transforms (linear -> circular ....)
- Decompositions (Pauli, Freman-Durdan, Moriyama, Entropy/Alpha, Eigenvalue, Sphere-Diplane-Helix....)
- Polarimetric classification (Entropy/Alpha/Anisotropy, Wishart, No. of scatterers, physical, Lee category preserving...)
- Polarimetric calibration: imbalance, symmetrisation & crosstalk (Quegan method)
SAR interferometry
- Image pair coregistration (coarse, subpixel & spatially varying)
- Interferogram formation
- Flat-earth removal
- Phase-unwrapping (least-squares only)
- Phase noise filter (Boxcar, Goldstein & GLSME)
- Coherence estimation (Boxcar, Gauss, Region Growing)
- Shaded relief calculation
Polarimetric SAR interferometry
- Formation of POLINSAR covariance and coherency matrices
- Coherence estimation & optimisation
- Extraction of optimised ESPRIT phases
- POLINSAR speckle filtering (Boxcar, Gauss & Lee)
- Coherence analysis in the complex unitary plane
<<lessOur motivation to start the development of RAT is that modern remote sensing software like Erdas Image or ENVI include only some basic SAR functionality. Advanced algorithms have to be implemented by oneself.
So we descided to start the development of RAT. RAT should bring modern SAR algorithms to a wider user-base by simplifying in particular the data handling and processing of complex SAR data.
RAT is planned as an ongoing community effort, i.e. there will be no final version with a certain functionality. It is our idea to include more and more SAR tools in future and to make them freely available to the scientific community.
We of course also hope for external contributions. Because of this, the programming interface of RAT is kept quite simple and adding own functions is quite easy. Function templates are included in the distribution and a step-by-step description of how to program a RAT module will appear soon in the documentation.
Main features:
General features
- Cross-platform (Unix, Windows, Linux & Mac OSX)
- Free software, no commercial software license needed (when using the IDL-VM version)
- Availability of the complete source code
- Modular design, easy to extend by own functions
- Small memory footprint even when processing large images (vertical tiling)
- No limitation on the image size
- Keep track of data representation changes during image processing
- Optimised preview on screen while calculations are done in full resolution
- Native import routines for E-SAR (DLR) and ENVISAT-IMS (ESA) data
- Export possibility to generic graphic formats (png, jpg & tiff)
- Undo function for the last processing step
Generic image manipulation
- Resize, presumming & cut region
- Zooming of an area of interest
- Mirror vertical and horizontal
- Binary transforms
Single channel SAR
- SAR speckle filtering (Boxcar, Median, Gauss, Kuan, Frost, MAP Lee, refined Lee, Lee-Sigma)
- Edge detection (RoA, MSP-RoA, Sobel, Roberts)
- Co-occurance texture features, variation coefficient
- Point and distributed target analysis
- Generic slant-to-ground range projection
SAR polarimetry
- Polarimetric point target analysis
- Polarimetric speckle filtering (Boxcar, Lee, refined Lee)
- Polarimetric CFSAR edge detection
- Calculation of interchannel ratios, correlation & phase differences
- Formation of covariance and coherency matrix, span calculation
- Polarimetric basis transforms (linear -> circular ....)
- Decompositions (Pauli, Freman-Durdan, Moriyama, Entropy/Alpha, Eigenvalue, Sphere-Diplane-Helix....)
- Polarimetric classification (Entropy/Alpha/Anisotropy, Wishart, No. of scatterers, physical, Lee category preserving...)
- Polarimetric calibration: imbalance, symmetrisation & crosstalk (Quegan method)
SAR interferometry
- Image pair coregistration (coarse, subpixel & spatially varying)
- Interferogram formation
- Flat-earth removal
- Phase-unwrapping (least-squares only)
- Phase noise filter (Boxcar, Goldstein & GLSME)
- Coherence estimation (Boxcar, Gauss, Region Growing)
- Shaded relief calculation
Polarimetric SAR interferometry
- Formation of POLINSAR covariance and coherency matrices
- Coherence estimation & optimisation
- Extraction of optimised ESPRIT phases
- POLINSAR speckle filtering (Boxcar, Gauss & Lee)
- Coherence analysis in the complex unitary plane
Download (2.5MB)
Added: 2007-04-02 License: Freeware Price:
952 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above data processing search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed