What is New in Dinamica EGO 6.0.0

(ChangeLog compared to Dinamica EGO 5.2.1)

Dinamica NUI (Application Graphical User Interface)

Revert “Revert “Add layers to WeightsOfEvidenceSkeleton when a numberMap is connected to a CalcDistanceMap and determine a standard layer for unknown functors””

Add layer suggestion to WeightsOfEvidenceSkeleton when a numberMap is connected to a CreateCubeMap functor

Verify if the port has an editor before using the withDataEditor function

Add layers from functor connected to categories port when there is no editor.

Add layers from functor connected to nameMap port when there is no editor.

Add option to assign undecorated custom icons to functors.

Definition of family of method copyScript and copyFunctors to copy the content of scripts to a specified container.

Fixing wrong parameters names of python method dinamica.package's AutoComplete doc.

Resolved the logic issue when there is only one selection to be removed in the Categorization Editor

Description and messages in port editors are no longer disabled when used as port viewers or in debugging mode.

Adding experimental selection and bookmark tool.

To enable/disable the options, you have to press Alt +<F5>

Enable/Disable insertion on selection list of experimental selection and bookmark tool with option Alt+<f5>.

Refactoring

Add feature to detect model bottleneck based on the time of the functors in the explorer menu

Add verification to avoid showing functors time when searching when showTimeFunctor is not selected

Keep the state of the bottleneck button when Dinamica reopens.

Fix NaN values ​​in the sum of the functors' time; Rename the script time functions to relate with search results and bottleneck.

Rename classes ModelFunctorPanel and ModelFunctorsSearchIndex

Discard any previous content of the tree table model used by the ExplorerPanel when there are no functors to be displayed.

Smplifying methods of the Experimental Selection and Bookmark tool.

Fixed bug where the settings related to bottleneck presentation were not properly shared among Explorer panels from different models.

Fixed bug when there is no selection on Next list to compare if it is equal to current on Experimental Selection and Bookmark tool.

Making container expand, if it is collapsed, when a selection on on Experimental Selection and Bookmark tool is inside it

Adding Experimental Selection tool on toolbar.

Adding button to go to most recent selection on history Selection Experimental Tool.

Adding Option to set maximum selections and bookmarks stored.

Disable/Enable toolbar button for selection bookmark tool on initialization according flag.

Fixed bug where the reset button from the port editor was shown to some types that could not be edited.

Add feature to automatically reopen recent models upon starting the application

Comments.

Avoid including scripts not directly loaded and/or saved by the user in the recent file menu; comments.

Removed unused imports.

Allow the position of tabs grouping input ports in the functor editor to be optionally specified in the group name.

Fix assertion failure when editing functors with no input ports.

Make sure the editor causing a validation error is always visible when committing changes in the functor editor dialog.

Changing position of previous and next buttons to be closer of the others buttons on Toolbar.

Add menu option to disable the reopening of recent models and add a confirmation box to this step.

Remove unused imports.

Add unsaved models failures when displaying errors on recent models reopening.

Refactoring

Add a button to create a Step functor inside a loop container.

Identify which port editor caused the combined validation error in the graphical interface.

Fix inline table editor.

Add equalizer to non-categorical maps when showing the map in the MapFilenameEditor

Updated SWIG to version 4.0.2.

Removed unused imports; Changed class names from dff to be fully qualified.

Adaptations due to changes in listing of factory content to avoid copying the listed names.

Adding Workdir on option to Group selection using especial functor.

Ordenate the identifiers considering the value type and value number.

Edit the column header format by copying the table selection to the clipboard.

Fix the extra space in save button tooltip.

Add option to remove unused submodels from model dependencies.

Add option to automatically remove unused submodels when saving the script.

Collapse non-canonical containers in closed or opened containers, before showing the containers in canonical state.

Refactoring

Fix component tooltip on Option.

Automatically create CalculateRExpression or CalculatePythonExpression when dragging R or Python scripts, respectively, to the application; also changed behavior to accept dragging any file type.

Add feature to import store submodels and user submodels in menu tab.

Using regex to replace all old functor name and alias at scriptXML.

Rearrange all submodel options in a new submenu.

Add action status while importing the submodels.

Edit submodel import icon.

Updated to allow compatibility with GDAL 3.x.

Add feature to go to submodel definition in local submodel tree pane.

Changed how the initialization of the user R package folder is done; Changed the initialization to populate that folder with the basic R packages (which are no longer part of the Enhancement Plugin).

Changed the location of the Dinamica package source provided with Dinamica.

Changed the automatic integration with user provided R to first validate if RTools is correctly installed on the system.

Correctly prepare and reset the user package folder when using a custom R; automatically re-integrate Dinamica with custom R after removing user packages.

Definition of separate entity to run console processes while showing their results (refactored from RPluginInstallDialog); Changed R Environment integration to run using the new entities.

Prevent R packages to be removed when there are still pending changes made to R Environment settings that haven't being applied yet.

Fixed bug where the button used to remove all installed R packages was not being properly enabled or disabled.

Definition of option to update all installed R packages, if possible, in the R Environment used by Dinamica.

Refactorying: changed “” with ''; Formatting.

Image Viewer (Map Viewer)

Legends are now visible by default when loading maps.

Dinamica NUI Utils (Graphical User Interface Utilities)

Adding utility classes for experimental selection and bookmark tool.

Changing data struture used into PreviousNextController.

Adding MostRecent method into PreviousNextController.

Method to set size of stack on PreviousNextController.

Add feature to automatically reopen recent models upon starting the application

Workaround bugs where the descriptions of port editors could not be formatted and presented properly in certain cases.

Changing buttons from the choice dialog to make them more in line with the expected behavior.

Definition of auxiliary function to retrieve which tab of a JTabbedPane contains a given component.

Add menu option to disable the reopening of recent models and add a confirmation box to this step.

Fixes a bug where model backup would not work if the model has dots in its name.

Definition of separate entity to run console processes while showing their results (refactored from RPluginInstallDialog).

Make sure the Close button is visible when an error is detected.

Fixed placement of some of the message dialogs shown upon successful or erroneous completion of the console process.

Dinamica (Application Core and DLLs)

Allow log messages to have more than MAX_MESSAGE_LENGTH bytes by classifying them in two types: long and short messages.

Definition of function to temporarily register functors in factories (should be used in test cases); adapted test cases to use the new function.

Refactoring.

Added additional parameter in some functor copy functions to return the list of functors copied and their equivalents in the original script.

Refactoring; simplifying definition of XMLScriptReader.

Comments.

Fixed variable name.

Definition of flag used to ignore writing information about the charset when saving a script (used mostly in test cases).

Definition of option to keep the content of a script when reading another script; definition of related test cases.

Using iterate() in the script reader definition.

Definition of method to read scripts directly into a container of other scripts; added test cases.

Refactoring: replacing streams with strings.

Refactoring: simplifying test cases.

Definition of family of method copyScript and copyFunctors to copy the content of scripts to a specified container; added test cases.

Fixed presentation of some debugging information for script readers.

Taking off nonsense comment into a FilesystemHelper's method.

Fixing wrong exception message into a FilesystemHelper's method.

When reading invalid layer names from ERS files, behave the same way as other map formats by creating a valid name from the invalid one.

Fixed error where images from merge operations could be generated smaller (by one line/column) than they should, causing an assertion failure; fixed inadequate variable names.

Bug fixing of LookupTable operators “Test Table Key” and “Get Table Value Using Predefined Name” on GPU running.

Fixed test case made invalid by change c2a2cba5159f6dd0d0a3454421f078a31def8b4e

Bug fixed on unnecessary memset, that increases a lot the execution time, on Fiber allocation of Linux.

Changing default path for copy files and to create PyEnv 3.8 for Linux.

Creating bash to create dependencies folder for GPU.

Bug fixed of TestCalculateRExpression where an exception make all tests execution abort.

Definition of custom tabs to group input ports from Rasterize Shape and Transform Map.

Renamed throwParseException() to throwDetailedException() and made it more general.

Changed combined functor validation to allow identifying which port editor caused the validation error in the graphical interface.

Fixing Random Stream creation used by GPU on ForEachWindow method. Before, the size was insufficient for big maps, because the number of items used was wrong to ForEachWindow. The right number has to be the number of pixels of the map, in order to respect the global distribution.

Fixed compilation warnings.

Fixed compilation to work with C++17.

Replacing boost::optional with std::optional (C++17)

Replacing boost::any with std::any (C++17)

Replacing BOOST_STATIC_ASSERT with static_assert (C++17)

Updated SWIG to version 4.0.2.

Changed definition of several types (Script Readers, Script Writers, Functor Schedulers & I/O Handlers) to avoid being derived from Descriptable.

FIx to not cache ImageExpression if expression is not compatible with Accelerators.

Optimization of several definitions by substituting std::string with std::string_view; Changed factories to allow either std::string_view or std::string to be efficiently passed as inputs (replaced std::unordered_map with std::map to allow the use of “transparent comparison”); Changed listing of factory content to avoid copying the listed names.

Redefinition of case-insensitive comparator as “transparent” case-insensitive comparator.

Modifed definitions related to properties to use std::string_view instead of std::string; Updated the string_view.i SWIG typemap to allow exporting definition of constant values.

Cleaning up SWIG interface files and proper use of system %include.

Correção em documentação.

Removed definition of NullOutputStream.

More replacements of std::string by std::string_view.

Using nodiscard to prevent results from function calls to be ignored by mistake.

Fixed bug caused by HollowFunctors not keeping ownership of std::string_views; refactoring to preserve ownership of std::string_views in SubmodelFunctors, HollowFunctors etc using a base class NameOwnedFunctor.

Fixed performance regression when comparing std::strings/std::string_views using a “transparent comparator”.

Optimization to avoid copying strings when writing properties using XMLScriptWriter (related to the changes from std::string to std::string_view).

Changed variables names; changes to C++11.

Changed the behavior of property and port storage to be case sensitive (this does not affect default compatibility since the scripts are saved assuming that the parsing is case sensitive); adapted test cases.

Fixed bug where the cell dimensions of the region map was not always being used to calculate the virtualization requirements for merging maps.

Error message clarification.

Fixed additional errors regarding the conversion from std::string to std::string_view: in some cases, a temporary string was being used to hold the content of the std::string_view.

Fixed more inconsistencies related to the use of std::string/std::string_view; removed unused Java bindings.

Fixed regression caused by error in the definition of NameOwnedFunctor.

Fixed compatibility of inline wrappers generated by SWIG and the C++17 compilers.

Adaptations to compile on gcc.

Revert “Adaptations to compile on gcc.”

Put java string_view Script properties types on swig

Get Projection Info: Added output port to return the epsg code from the given projection.

Updated to allow compatibility with GDAL 3.x.

Fixed bug where the “For” container would run into an infinite loop, if the first and last limits were equals, but the step was negative.

Refactoring: removed unnecessary heap allocation of Script Readers and Writers in test cases.

Changed definitions of strings in test cases to use raw string literals when possible.

Additional use of std::string_view in the script readers and writers.

Replaced Boost Filesystem with Std Filesystem available in C++ 17.

Formatted files using Clang Format; Added definition of the clang-fomat config used to format the source code files; Updated copyright date.

Removed unused files.

Changed how the initialization of the user R package folder is done; Changed the initialization to populate that folder with the basic R packages (which are no longer part of the Enhancement Plugin); Some refactoring.

Formatting; Added comments.

FilesystemUtils::removeFileOrFolder() now includes the cause of any error in the exception.

Moved property indicating if it is running as console application from Version to SystemUtils; Removed redundant project name definition from ApplicatinUtils.

Fixed typo in error message.

Additional replacement of std::string with std::string_view; Some refactoring.

Uniformization of the names of the keys used by properties stored in Registry; Used std::string_views as property keys.

Correctly prepare and reset the user package folder when using a custom R; Clarification of the expected behaviour when preparing the user package folder; Refactoring; Comments.

Fixed bug where merging images using MergeRegionalMaps / MergeRegionalCategoricalMaps could miss the very last lines of the regional maps.

Export the location of the R interpreter being used by the application to Java.

Formatting.

Updated version to 5.3.0.