taskGNU Astronomy Utilities - Tasks: task #15156, Programs as library functions

 
 

You are not allowed to post comments on this tracker with your current authentication level.

task #15156: Programs as library functions

Submitter:  Mohammad Akhlaghi <makhlaghi>
Submitted:  Thu 17 Jan 2019 01:22:41 PM UTC
   
 
Should Start On:  Thu 17 Jan 2019 12:00:00 AM UTC Should be Finished on:  Thu 17 Jan 2019 12:00:00 AM UTC
Category:  All Gnuastro Priority:  5 - Normal
Item Group:  None Status:  Postponed
Privacy:  Public Assigned to:  makhlaghi
Percent Complete:  0% Open/Closed:  Open
Effort:  0.00

Thu 17 Jan 2019 01:22:41 PM UTC, original submission:  

High-level command-line programs (as opposed to low-level libraries) are currently the most common way that Gnuastro is used.

When considering task #13786 (to use Gnuastro in higher-level languages like Python, R, or Java), having a library function that can run NoiseChisel (for example, or any other program) from memory, without having to do a system call can be very useful.

One major hurdle in this regard until now was managing all the configuration options necessary for some programs as a function call.

For each program we can have a library function like: `gal_astnoisechisel' (prefixing the program name with `gal_' (the common prefix in all gnuastro's library functions).

To solve the configuration problem, we can break up the program's user defined variables (defined in the main structure of `src/*/main.h') into a separate structure from the generic parameters structure (which currently includes internal parameters also).

The library users can have access to the user defined variable structure and set the values as they like. When the library function is run, it can parse the configuration files using the same existing functions and fill in any value that the user hasn't defined base on them.

The rest (actual running of the program) is then trivial.

After wards, to implement task #13786 (atleast for the programs), we just need a wrapper for Gnuastro's `gal_data_t' data container to the respective language container (for example Numpy's in Python).

Mohammad Akhlaghi <makhlaghi>
Group administrator

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by makhlaghi (Submitted the item)
  • -email is unavailable- added by makhlaghi
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follows 1 latest change.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-01-17 makhlaghi Carbon-Copy- Added -email is unavailable-

    Back to the top

    Powered by Savane 3.13-3230.
    Corresponding source code