PollyNET / Pollynet_Processing_Chain

NRT lidar data processing program for multiwavelength polarization Raman lidar network (PollyNET)
https://polly.tropos.de/
GNU General Public License v3.0
19 stars 8 forks source link

Compatability with Octave? #207

Closed martin-rdz closed 1 year ago

martin-rdz commented 1 year ago

Has anyone ever tested if the Processing_Chain runs with Octave?

As most servers use quite old versions of matlab i see no principal reason, that there should be major issues. Octave seems to have deficits with some toolbox functionality, but maybe thats circumventable.

There are netcdf libraries (e.g. netcdf) for octave, but i did not test those either.

Best, Martin

HolgerPollyNet commented 1 year ago

I tried Octave years ago, at this time it was not 100% compatible. But you are right, maybe one should try it? @ulysses78 @ZPYin @cristoferjimenez any opinions?

ulysses78 commented 1 year ago

That is a good option. We definitely should give it a try.

ZPYin commented 1 year ago

I just tried Octave for running Pollynet_Processing_Chain. Unfortunately, it fails.

I tried with some quick fixes to make it compatible, but it seems not that easy. All the functions using matlab toolbox (to name a few, curve fitting toolbox, database toolbox, symbolic toolbox, jsonlab and (of course) netcdf toolbox), should be replaced. Luckily, all of these toolbox have their alternatives in Octave. But the interface of these toolboxes are different (Matlab is Java style and Octave is Fortran style). Therefore, I might expect large workload in the conversion, think about re-write many functions and also testing.

If you just wonder whether it can be converted into Octave, my answer is 'Yes', but with large price.

cristoferjimenez commented 1 year ago

The little experience I have with octave was 10 years ago, so it is difficult for me to guess how much effort would mean to start rewritting the functions to migrate nto octave. From feeling (and as Zhenping just confirmed) I think it is not a minor work...

martin-rdz commented 1 year ago

@ZPYin Thanks for having a quick look. The issue arose, because we again had a license procurement discussion.

If the rewrite would be a major undertaking one could also think of starting a python port, especially if we take into consideration that some (self-contained) matlab functions can be compiled and distributed as python callable binaries.

ulysses78 commented 1 year ago

You know my opinion - a PyPicasso or PicassoPy would be very attractive. Using the Matlab compiler for generating Python functions sounds very useful to start this project. Of course this has to be a parallel and modular task. It has to be planned quite well in terms of modules, function structuring, function definitions and especially function interfaces. But this is a totally independent project and does not fit to the title of this issue.

HolgerPollyNet commented 1 year ago

Okay, considering the time we all have to work on such a project it is not feasible for now. Something for strategy 2030...