Skip to content

Releases: miguelinux314/experiment-notebook

v1.0.5

28 Oct 11:15
Compare
Choose a tag to compare

2024/10/28 v1.0.5

Improvements:

  • Fixed a problem that prevented values in .ini files from being recognized
    (persistence_dir, base_dataset_dir, analysis_dir, output_plots_dir)
  • Fixed regression bug that prevented some columns from being populated if they were defined after the table's
    persistence CSV file was created.
  • The enb.ini plugin is now installed with all options commented-out, ready for the user to modify at will

Deprecations:

  • Fixed enb.atable.ATable's typo: dataset_files_extension becomes dataset_file_extension.
    The old name will be kept for now as a deprecated property.

v1.0.4

07 Sep 09:57
Compare
Choose a tag to compare

Improvements:

v1.0.3

21 May 15:12
Compare
Choose a tag to compare

Improvements:

  • When failing to build/install a plugin with enb plugin install <plugin_name> <destination>, a copy of the
    incomplete installation dir is copied to a temporary dir so that you can attempt a manual installation.

  • The corpus column now treats symbolic links within the dataset folder as regular files.
    This way:

    • One can arrange data samples from multiple sources and still have a consistent corpus name.
    • One can change the name of a symbolic link, and that name will be employed within the experiments.
    • One can mix symbolic links and regular files as needed.
      For instance, the following dataset folder setup (-> indicates a symbolic link):
      • Would assign corpus "C1" to samples A.txt and B.txt, and "C2" to samples B.txt and C.txt,
        regardless of the physical folders where those samples are.
      • The data in /home/shared/altsource/some_name.txt would be known as datasets/C1/B.txt to the experiment.
      • File datasets/E.txt is not a symbolic link and is treated normally.
    - datasets/
      - C1
        - A.txt -> /data/source1/A.txt
        - B.txt -> /home/shared/altsource/some_name.txt
      - C2
        - C.txt -> /home/shared/altsource/C.txt
        - D.txt -> /data/source2/D.txt
        - E.txt
    
  • Added lc, a lossless codec that wraps the LC Framework functionality.

v1.0.2

06 Feb 16:33
Compare
Choose a tag to compare

2024/02/06 v1.0.2

Improvements:

  • Enhanced progress reporting of parallel row computation. You can test it in your scripts invoking them with
    -v or -vv or, equivalently, adding enb.config.options.verbose = 1 or enb.config.options.verbose = 2
    to your code.

  • Messages displayed with enb.logger (and, by default also with print) are now colorized based on their priority.
    You can easily configure the styles by installing the colors-default, colors-dark or enb.ini plugins
    (e.g., enb plugin install colors-default . in your project folder) and modifying the installed .ini file,
    and/or by modifying the style_* members of enb.logger.

  • Added the compression_results and decompression_results properties to enb.icompression.CompressionExperiment,
    which are enb.icompression.CompressionResults and enb.icompression.DecompressionResults instances, respectively.
    These can be called from functions that set row columns of compression experiment subclasses. For instance,
    they can be used to access the original, compressed and/or reconstructed file paths, e.g.,

    import enb
    
    class CustomExperiment(enb.icompression.LosslessCompressionExperiment):
       def column_first_compressed_byte(self, index, row):
            """Set the 'first_compressed_byte' column of the experiment.
            """
            with open(self.compression_results.compressed_path, "r") as compressed_file:
                return int(compressed_file.read(1))
    
  • Added the grid_alpha, subgrid_alpha and tick_direction to the enb.aanalysis.Analyzer class.
    These parameters can also be managed with .ini files (see the enb.ini plugin), or passed directly
    to the get_df method of Analyzer subclasses.

Bug fixes:

  • Prevented spurious exceptions while shutting down, which could happen when an enb.atable.ATable instance
    is created but its get_df method is not called.

  • Using relative imports (e.g., of plugins or other modules within the project folder) now works for remote
    ray clusters. A small refactoring related to identifying local and remote nodes, as well as adapting
    paths relative to the remote mount point when needed has been introduced, too.

  • Added missing h5py dependency to setup.py.

v1.0.1

01 Jan 12:59
Compare
Choose a tag to compare

After 4 years of development and a lot of user feedback, switched from beta status to stable/production!

NOTE: This version change does NOT imply a change in the API (backwards compatibility with 0.4.x is expected).
However, a cleanup of old blobs was performed on the repository.
You might need to use git pull --force to update your local development repository.

New features:

  • Added the enb.aanalysis.ScalarNumericJointAnalyzer class,
    which allows numerical data analysis considering two classifications
    at the same time. Useful to produce 2D tables (also in latex format) with categorical columns and rows.
    (Check out the documentation).
  • Added support for group comparison in the enb.aanalysis.TwoNumericAnalyzer
    class when the line render mode is requested.
  • Added a plugin for the Montsec codec. You can install it with enb plugin install montsec plugins/montsec.

Improvements:

  • Enhanced plugin installation messages and behavior.
  • Improved computation time of ATable.get_df when part of the rows already existed.
  • All enb.aanalysis.Analyzer subclasses now accept single strings in the selected_render_mode argument.
    Previously, a list empty or containing mode names was mandatory.

Bug fixes:

  • Fixed regression bug that prevented the plot_title from being displayed on enb.aanalysis.Analyzer subclasses.
    Also added a title_y parameter to their get_df method to allow manual title height adjustment.
  • Fixed a bug in the enb.icompression.LittleEndianWrapper class that prevented lossless reconstruction.
    Updated the HEVC codec to accept 16 bit samples (now that the endianness is properly handled).

v0.4.5

23 Oct 09:53
Compare
Choose a tag to compare

2023/09/15 v0.4.5

New features:

  • Added a plugin that can apply the direct and inverse BWT. Uses the codec API (compress, decompress).
  • Added a plugin for the LPAQ8 codec.
  • Added support in enb.isets for reading and writing BIL and BIP raw data orderings. Added the BIPToBSQ
    and BILToBSQ ImageVersionTable subclasses to facilitate curation of BIL and BIP datasets.
  • Tested on a Raspberry Pi (improved installation instructions for this platform.)

Behavior changes:

  • When computing the dynamic range of integer samples in enb.isets,
    this value was obtained considering only the difference between
    the minimum and maximum sample values. Therefore, if maximum-minimum=1, then the dynamic range was set as 1
    even if min and max are large values, e.g., 4094 and 4095.
    From version v0.4.5 onwards, the
    dynamic range B is the minimum integer so that all data samples lie in
    [0, 2^B-1] for unsigned data and in [-2^(B-1), 2^(B-1)-1] for signed data.
    The calculation for floating point data is not changed, and is always 8*bytes_per_sample.
    Note: This change affects only the dynamic_range_bits column of enb.isets.ImagePropertiesTable,
    the psnr_dr column of enb.icompression.LossyCompressionExperiment and the sample precision selection
    of the lcnl (CCSDS 123.0-B.2) and kakadu (JPEG 2000) plugins.

Other changes:

  • Removed ray as a dependency when installing enb.
  • Speedup of experiments with a large number of tasks/target indices. Only chunk_size needs to be touched.
  • The task_label column is now by default the task's class name (elements of the tasks' param_dict are not
    included in it anymore).
  • Fixed CLI argument parsing for some numerical values.
  • Partial code cleanup using pylint.
  • Removal of the byte_value_* columns in ImagePropertiesTable to speed up compression experiments with
    large files.
  • Speedup of enb.aanalyis.Analizer subclases with more than one render mode.

v0.4.4

16 Jan 16:12
Compare
Choose a tag to compare

Small improvements:

  • Fixed bug in enb.plotdata when the y limits were explicitly set to None.
  • Added the --disable_progress_bar flag to supress the display of the animated progress bar
    (useful to minimize the stdout output volume, e.g., for logging purposes). This helps executing enb in
    headless and virtualized platforms.
  • Added compression/decompression resident memory size for WrapperCodec subclasses.

v0.4.3

02 Dec 09:51
Compare
Choose a tag to compare

Updated to version v0.4.3 (2022/12/02)

New features:

  • Added the classic JPEG codec to the jpeg plugin
  • Added the apply(self, experiment, index, row) to the enb.experiment.ExperimentTask class.
    This method is now called by the enb.experiment.Experiment class and its subclasses
    before computing any other row.
  • Added the iraf_photometry plugin that allows automatic photometry processing using IRAF
    (IRAF must be installed separately).
  • Added the enb.icompression.GeneralLosslessExperiment that allows seamless execution of lossless compression
    codecs on files without needed to add image geometry information to their name nor change their extension
    (e.g, general files).

Improvements:

  • Updated kakadu and FAPEC codecs to specify the exact dynamic bit range instead of the nominal one,
    which allows compression of 17-28bps images stored in u32be and s32be formats.
  • Added support for 4-byte entropy and 4-byte entropy efficiency.
  • The CCSDS codec now uses 1 sample per packet to allow automatic compression of wide images.
  • Cleanup of the lcnl codec wrapper.
  • Added the "image" category for image processing and compression plugins.

v0.4.2

03 Nov 08:20
Compare
Choose a tag to compare

Minor version update

  • Improved error text when not enough data is available in the scalar analyzer class.
  • Fixed the lossy compression template plugin so that it does show data instead of using alpha=0.
  • Added the file_version_example plugin that demonstrates the use of enb.sets.FileVersionTable.
  • Created a documentation page about enb.sets.FileVersionTable and its subclasses.

v0.4.1

19 Sep 12:24
Compare
Choose a tag to compare

Some minor updates over 0.4.0. Please check the CHANGELOG for full details.