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.

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

This “partially” reverts commit c6780a597912cbc39913122f582e58711a93b1d9.

Reason: bug found when displaying certain models; Changed validation for when to reconstruct the user package folder to deal better with folders populated by older versions of Dinamica; Fix bugs caused by 'Refactoring'.

Show all submodels in submodel dependency graph.

Refactoring.

Add action status while importing local submodels.

Refactoring ExplorerPanel

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

Keep the submodel dependency graph viewer open when changing the panel

Change the selected panel, in case of removing the current submodel.

Visual adjustes in the submodel dependency viewer.

Improve button tooltips.

Add file header.

Add confirmation before importing submodels.

Adjust the size of the submodel listing.

Include submodel used indirectly by the model when importing store and user submodels.

Ask to apply or discard changes in the submodel before importing the store and user submodels.

Set the focus of the Explorer Panel results according to the node and its path.

Update profiling informations before updating tree to avoid errors.

Fixed bug where the small functor icon was not always being retrieved; Change decorated/undecorated icon search to match the intended specification; Fix bug where copy and paste feature is used,

between different editors, for functors that are not local submodels.

Fix the wrong method call.

Remove unused method.

Make sure the functor information is not null before running the component actions.

Get the correct data tree model for the highlightFunctor method.

Updated for compatibility with the the handling of utf8 with the new std::filesystem API; Generalize and add new features.

Refactor the Submodel Store dialog and update its view to show the submodel groups.

Define a childless node as a tree leaf.

Add the count of children to the tree node with children.

Sort tree nodes by their names.

Remove unnecessary worker.

Reload the tree instead of recreating it in the search action.

Deny selection of parent nodes.

Create buttons to add submodel type filtering to the search results.

Modify design features.

Adjust the horizontal alignment of the search field.

Set the background of the search field, according to the results.

Updating information for version 6; Fixed bug caused by differences in path separators when importing submodels; Add to search a pop-up menu of options.

Changed path to the Dinamica R package files on Linux; Add to search field a pop-up menu of options.

Updated update control variables to version 6; Ignored build date when validating which submodels from the store should be visible by the current version of Dinamica (avoid problems when compiling different instances of a single release in different days); Check for submodel data before searching.

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.

Fixed bug where monitoring the process would not report its output correctly due to the process execution ending too soon; better handling of cases when the process fails to start; Fixed race condition that would cause the monitoring thread to miss the last lines of the process output; Fixed potential problem when a Swing component content is being read outside the event thread; Comments; Refactoring.

Refactoring ExplorerPanel

Deny selection of parent nodes.

Updating information for version 6.

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.

Changed validation for when to reconstruct the user package folder to deal better with folders populated by older versions of Dinamica.

Fixed bug where RIntegration would fail to detect that the plugin is not installed before attempting to copy the predefined user packages; Removed dead code.

Added .gitattributes to ensure proper line termination in the source files.

Introduce end-of-line normalization

Formatting.

Fixed compilation errors on Linux.

Fixed error finding the user config files on Linux (caused by the convertion from Boost.Filesystem to Std.Filesystem).

Fixed bug where the GDAL utilities would not find the location of the proj.db file.

Make sure the destination path exists before setting up the Python environment for the user.

Merging maps now reports the current progress.

Updated copyright.

Fixed comment.

Additional replacement of std::string with std::string_view.

Optimizing the defintion of projections using their WKT representations: explicit copy of the WKT strings are no longer necessary.

Changed how projections are retrieved from images for compatibility with GDAL 3; Changed default projection for ASCII image format also for compatility with GDAL 3 on Linux.

Modified projection reading to prevent crashes caused by using the C++ GDAL 3 API on Linux.

Fixed compilation warnings.

Code formatting and indentation.

Fixed bug visible on Linux when reading legacy scripts: improper use of std::string_view.

Fixed typo on Linux-only test case.

Removed definition made redudant by the use of std::filesystem that was causing a runtime error on Linux.

Removed meaningless test case from TestFilesystem: it is not clear what is being tested.

Changed encoding of all source code files to UTF-8.

Fixed test case related to encoding and Std::Filesystem on Linux; Changed test case to avoid modifying the input data.

Fixed handling of path to avoid crash on Linux - related to the changes from Boost::Filesystem to Std::Filesystem.

Refactoring; Formatting.

Fixed additional test cases related to encoding and Std::Filesystem on Linux; Reverted part of the previous correction: “Fixed test case related to encoding and Std::Filesystem on Linux ...”; Added additional test case.

Solve additional problems when dealing with path encoding in GDAL: related to the change from Boost::Filesystem to Std::Filesystem.filesystem; Comments; Added additional test cases.

Breaking GDAL encoding test cases to more easily identify failures; Comments; Additional test cases.

Solved additional problems when dealing with path encoding in ERMapper and compressed archives: related to the change from Boost::Filesystem to Std::Filesystem.filesystem; Changed zip handling to use minizip-ng; Comments; Added additional test cases.

Definition of a cleaner and more strict set of CMakeLists files; Changes to allow the code to compile using the new CMakeLists.

Formatting; Comments.

Fixed how some libraries are imported in the CMakeLists.

Fixed compilation on Linux using the new CMakeLists; Added script to compile on Linux; Fixed mixing includes.

More fixes to the compilation on Linux using the new CMakeLists.

More improvements to the compilation of Dinamica using the new CMakeLists.

More improvements to the compilation of Dinamica using the new CMakeLists on Linux.

More improvements to the compilation of Dinamica using the new CMakeLists on Windows.

Removing unused definitions.

Copy of Python, GDAL and Proj4 files after the compilation; Versioning of the compilation.

Remove unused entries.

Updated reference to the current SWIG version.

Converted file to UTF-8.

Added scripts to run the tests; Fixed location of the input test files to allow running tests from folder Release.

Fixed compilation variable names.

Fixed folder names.

Reworking compilation scripts for better control.

Additional clean-up of Linux's scripts.

Fixed generation of the BUILD_ID.

More fixes to the build scripts: avoid problems when detecting files to be installed.

Fixed incorrect commit.

Added missing flag to disable unwanted test cases.

Fixed the search for shared dependencies in the resulting libraries and executables.

Fixed more test cases to work with the new CMake scripts.

Modified CMake scripts to perform automatic instalation of library dependencies.

Merge branch 'temp' into HEAD

Fixed copying dependencies on Windows.

Fixed line termination on Linux.

Fixed more test cases on Linux; Added Submodels to the default install.

Changed CMake requirement to better compatibility with Visual Studio.

Changed CMakefiles for easier customization of the dependency sources (necessary for linux debugging from Visual Studio).

Defined independent installation setting for tests.

Fixed test and copy of the GDAL utilities on Windows.

Fixes for compilation with debug symbols.

Applied fixes related to the use of UTF-8 and std::filesystem; Changed Java exports according to the new behavior; Enforced assumption that strings coming from outside are in UTF-8 encoding.

Reorganizing CMakeList files;

Fixed installation of PDBs files.

Compilation using MSVC now assumes that all input files are always UTF-8.

Uniformization of the handling of utf8 with the new std::filesystem API for better portability between Linux and Windows: Dropped the explicit use of StringUtils::toUTF8/fromUTF8 whenever possible; Updated test cases.

Removing unnecessary functions from FilesystemUtils.

Fixed use of the new Python on Linux.

More fixes to std::filesystem/UTF-8 conversions.

Fixed use of PROJ4 after updating vcpkg.

Changed compilation to use toolkit from Visual Studio 2022.

Correção de warnings (clang tidy).

Formatação de mensagens.

Revert previous invalid change that would prevent compilation on Linux.

Updating information for version 6.

Updating information for version 6 (missing).

Updated name of configuration files to match verion 6 of Dinamica on Linux.

Removed unnecessary compilation files.

Added script to run the console application from compilation folder.

Changed compilation and test scripts to comply with version 6 of Dinamica EGO.

Fixed loading Python library when loading Python modules as part of CalculatePythonExpression.

Added generated GPU binding files to the ignore list.

Added generated GPU compiler files to the list of files to be installed.

Fixed location of library used to compile image expressions on the fly.