corewall / corelyzer Goto Github PK
View Code? Open in Web Editor NEWThe Corelyzer Core Visualization Tool
Home Page: http://corewall.org
The Corelyzer Core Visualization Tool
Home Page: http://corewall.org
The problem:
We need to get scenegraph building in a modern, free version of VS like Visual Studio Community 2019 or, better yet, in a non-Visual Studio toolset like MinGW again.
Background:
When I inherited Corelyzer in 2010, the scenegraph DLL was built with MinGW. Somewhere along the line, this broke. I've forgotten the details in the ensuing decade, but I believe at some point the resulting DLL caused Corelyzer to crash at launch. I couldn't figure out why, and ultimately gave up and started building the DLL in Visual Studio 2008. Because we rarely need to modify scenegraph, this sufficed and I never revisited the MinGW issue.
In 2019, I managed to create a 64-bit build of the scenegraph DLL. Most of the effort was building supporting libraries (libtiff, libjpeg, etc.). This was all still done in VS2008. The project can be imported into modern versions of VS e.g. Community 2019, and the DLL builds without issue. However, it always crashes Corelyzer at launch. I believe this is somehow related to the supporting libraries' DLLs, which were built in VS2008.
The information in README.md files of master and linux_build branches are slightly different.
The optimum solution would be to also have Linux in the masters branch, that it doesn't lag behind and requires extra attention.
If this is not practical, I suggest to remove Linux-related information from the README.md in masters and have it only in linux_build, and there keep it updated.
The trim dialogue is preset on "selected and deeper sections". This is not safe, because the user expects to work with the selection. Thus, "selected section only" should be the default and "selected and deeper sections" an option that is actively chosen by the user. This would prevent the accidental trim of a large number of sections, possibly without the user noticing it. As Corelyzer does not implement an undo-function, such a mistake, if discovered, cannot be reverted. To trim in the opposite direction is not a solution because it will not reverse the action when a maximum/minimum value is encountered by any of the sections. Undo functionality is not available - thus, the default option in the trim dialogue has to be safe: "selected section only".
Errors about missing image and datafiles will appear. Click "Ignore" through all of these. When import completes, images and datafiles for the session that was selected at export-time (Step 5) will be loaded. Images and datafiles for the non-selected session will be missing.
Corelyzer 2.1 Linux
I open a project with two sessions, "Televiewer" and "Core".
The "Televiewer" session is quickly loaded and I navigate to the depth where I left off before. For this, I click on "Televiewer" in the "Session" panel while the "Core" session is still loading and proceed via "Slices" in the "Track" panel to my target section.
The next track of the "Core" session after I navigated to "Televiewer" appears then as track in the "Televiewer" session and not under "Core", where it belongs to. This track is empty and no more data are loaded at all, i.e. the loading procedure failed.
How it should look like for "Televiewer" and "Core", respectively:
How it looks like after user navigation to "Televiewer" while "Core" is loading:
Two possible solutions:
A) Make loading independent from the UI.
B) Block the UI while a project is loading, i.e. allow no user interaction until the last section is loaded.
Steps:
Steps:
Unfortunately, we trigger canvas redraws on changes to the main window's section list. If the newly-selected section happens to have the same list index as the previous selection, no list change is detected and thus no redraw occurs.
In the above steps, select the second core of the upper track, then the first of the lower, then second lower, then first upper. Selection draws properly in all cases. Problems only occur when selecting the core of the same index in the other track.
The origin of the problem: I have a cml file that includes multiple sessions. Now I want to export each session to a separate core archive. The apparently easiest way to achieve this to
The created core archives contain
Corelyzer apparently assumes that the user has saved the session just before the export to core archive. In the workflow above, but also in other situations, this could lead to unwanted results. I suggest to change the export to core archive by either A) explicitly asking the user to save the session before export in a separate dialogue or B) always saving the session to a temporary cml file that then is included in the archive. Preferably B), as it is more flexible (could be extended with a dialogue that lets the user choose the sessions to be included in the core archive).
I can successfully build the linux_build branch, but not the master branch after the linux_build was merged with it. So it's not an issue with my java. The build procedure terminates with the following error:
2021-06-08T16:18:30.760+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
2021-06-08T16:18:30.760+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
2021-06-08T16:18:30.760+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
2021-06-08T16:18:30.760+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Where:
2021-06-08T16:18:30.760+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Build file '/ ... /corelyzer/build.gradle' line: 33
2021-06-08T16:18:30.761+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
2021-06-08T16:18:30.761+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
2021-06-08T16:18:30.761+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Execution failed for task ':package-check'.
2021-06-08T16:18:30.761+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Error: javaRuntimeFile var is null.
2021-06-08T16:18:30.761+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] To resolve, update javaRuntimeFile var with your Java 11 runtime in build.gradle.
2021-06-08T16:18:30.761+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
2021-06-08T16:18:30.761+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:
2021-06-08T16:18:30.761+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Run with --stacktrace option to get the stack trace. Run with --scan to get full insights.
2021-06-08T16:18:30.761+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
2021-06-08T16:18:30.761+0200 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Get more help at https://help.gradle.org
2021-06-08T16:18:30.762+0200 [WARN] [org.gradle.internal.featurelifecycle.LoggingDeprecatedFeatureHandler]
The key seems to be "To resolve, update javaRuntimeFile var with your Java 11 runtime in build.gradle.", which would be line 15 in build.gradle:
def javaRuntimeFile = null // replace with your Java 11 runtime
If I replace with the Java 11 runtime, i.e. not with the symbolic link in /usr/bin, then this should work:
def javaRuntimeFile = /usr/lib/jvm/java-11-openjdk-amd64/bin/java
But it does not. I tried various other things, no success.
What path is required to make this work, and why can't it be preset for java 11, like in the build.gradle for scenegraph? This should be documented in the READEME.md.
Steps:
In most cases, it is correct for Corelyzer to add a new track to the currently-selected session. However, that is not the case when loading data from a file!
The File > Import Data > Convert Tabular Data to XML... dialog does not support Excel (.xls, .xlsx) files. However, no error appears when a user selects an Excel file to import. The dialog still appears, in an empty state (no current file, no data in spreadsheet).
When a user attempts to import an Excel file, display a meaningful error, and don't show the dialog.
Steps:
This freeze occurs whenever the selected track in the Image Listing dialog and main window don't match when the user clicks OK to load the current image listing.
Steps:
At this point, there is no way to interact with the marker.
Clicking the "post-it note" marker for an annotation should display the annotation. However, if the core's top/"Begin" Visible Interval is modified, the click won't be detected.
Steps:
When detecting clicks on annotation markers, it appears Corelyzer isn't accounting for the offset resulting from hiding the top of a core image.
Dear @sorghumking
Thank you for maintaining this excellent software!
Version 2.1.2 built from source for Ubuntu 20.01
The building process was not too difficult.
However I have found a problem which confused me for a while.
I made a session and imported my images.
Then I used imagemagick to attach a ruler to rescale all my core images, since they were not photographed with one though the lengths were recorded(it makes things easier to pinpoint when using corelyzer).
I resaved these new images in a new folder. Then I treid both adding them to my new session and creating a new session with them.
The images have the same filenames as images already used for another corelyzer session, but in a different folder so with different paths. Basically Corelyzer will not reflect any changes in the images, unless you change the filenames or until you delete the image cache within corelyzer and reload the images!
i tried loading from subdirectory where the first images were, and also a subdirectory in /tmp, i tried resaving them with gimp, exporting them, etc. The only thing that made a difference was saving under a new filename not already used by corelyzer in a previous session, or by erasing the image cache from within corelyzer.
It seems like corelyzer image cache doesn't consider paths, only filenames or session/sectuib names.
STEPS TO REPRODUCE:
Steps:
Steps:
The TreeNode
method public Enumeration children()
was generified to public Enumeration<TreeNode> children()
in Java 10, causes a compile-time error since Corelyzer's migration to Java 11:
./corelyzer/plugin/iCores/ui/tree/FeedTreeNode.java:146: error: children() in FeedTreeNode cannot override children() in DefaultMutableTreeNode public Enumeration<FeedTreeNode> children() { ^ return type Enumeration<FeedTreeNode> is not compatible with Enumeration<TreeNode>
This StackOverflow answer explains the error.
If tabular data is imported using meters as the depth unit, adjustments to Visible Interval are misinterpreted as meters instead of centimeters. For instance, setting Begin to 0.5cm causes the top 0.5m of the plot to disappear.
Behavior appears to be correct if tabular data is imported using meters as the depth unit.
It would be very helpful to have way to quickly save the project from the workspace, without the need to first to "Show" the main window, then save and "Hide" the main window again. This could be achieved by adding a "Save botton" to the tools menu (to the left of the "Minimize Corelyzer" button.
Section images that are vertically oriented at import-time behave badly when trimmed via Trim Sections. Both ends of the section are trimmed, and the Trim Sections dialog sometimes displays "???" in the trim length field.
As of c920ecc, the scenegraph DLL can be cross-built (including on Windows, via the Windows Subsystem for Linux).
Even so, users uncomfortable with the command-line would prefer to build the scenegraph DLL in the Visual Studio IDE.
Scenegraph builds in VS 2008 (an ancient, paid product), but the project has never been modernized. It would be great to get it building in VS 2022 Community Edition.
Steps:
This is a long-standing, extremely slippery issue that's exclusive to Windows.
The first time core images are loaded, they're processed into S3TC tiles at various zoom levels for use in the software. This can be quite slow, especially with many images. Thus the processed data are cached in Corelyzer's cache directory, which load very quickly in comparison.
However, sometimes Windows re-processes images that are already cached. I say "sometimes" because this behavior is difficult to consistently reproduce. Sometimes it happens, sometimes it doesn't. Attempts to reproduce the behavior in a Debug build have failed.
This is a serious problem for very large projects, which can take 30+ minutes to load if the cache is unused.
Corelyzer 2.10 on Ubuntu Linux 20.04 LTS
(the spelling 'Corelizer' (below) is a mistake in the new mDIS exporter and, thus, correct in the context and not the cause for error)
I try to import core scans that were exported from the mDIS. XML file and images are in the same directory. The XML file contains the correct full path to the image of each core section. I open the XML file by File => DIS => Import
In the terminal I see the following
---> [DISLoader] Read DIS file: '/home/hl/Desktop/CorelizerXmlExport_COSC-2B/ICDP_5054_2_B.xml' with DIS-Prefix: ''
EXP> name: Collisional Orogeny in the Scandinavian Caledonides, id: 1
SITE> name: COSC-2, id: 2
HOLE> name: B, id: 5
CORE> name: 1Z, id: 2174, topDepth: 6.08, mcd_depth: 6.08, length: 2.52
SECTION> name: 1, id: 6124, topDepth: 6.08, mcdDepth: 6.08, length: 0.91
IMAGE> name: CS_5054_2_B_1_1.jpg, id: 15204, url: file:/home/hl/Desktop/CorelizerXmlExport_COSC-2B/CS_5054_2_B_1_1.jpg
imageUrl is: file:/home/hl/Desktop/CorelizerXmlExport_COSC-2B/CS_5054_2_B_1_1.jpg
[URL OK] the path is: /home/hl/Desktop/CorelizerXmlExport_COSC-2B/CS_5054_2_B_1_1.jpg
[URL OK] the file is: /home/hl/Desktop/CorelizerXmlExport_COSC-2B/CS_5054_2_B_1_1.jpg
[DISLoader] !Mac's imageUrl: file://///hl/Desktop/CorelizerXmlExport_COSC-2B/CS_5054_2_B_1_1.jpg
Obviously, the URL is interpreted correctly until the second line from below. When the DISLoader comes in, something strange happens - too me it looks like a functionality that is intended to work on a Mac, although I can't see the difference to Linux. A full path is a full path. In any case, it results in the Corelyzer error "File could not be found: '/hl/Desktop/CorelizerXmlExport_COSC-2B/CS_5054_2_B_1_1.jpg'"
A blank cell in the last selected column/cell in the first row of data (as specified in the Data Start Line field) throws an ArrayIndexOutOfBoundsException.
Blank cells elsewhere don't appear to be a problem, nor do blank cells anywhere in subsequent rows of data.
Steps using the attached XLSX file:
The stack sections command has the potential to destroy work as it moves all deeper sections without further confirmation, which could be 1 or hundreds of sections. Its easy to trigger by mistake instead of trim (just above in the menu) and there is no undo function. It would be really good to have a pop-up box that requests confirmation or allows to cancel the command.
Steps:
Steps:
When a CML session file is used to invoke Corelyzer (via double-click, right-click + Open, or dragging CML file onto Corelyzer app), the session loads incompletely. Data files are added correctly, but tracks and sections don't appear.
CorelyzerAppController.doAssociatedFile() calls loadStateFile(). This eventually leads to CorelyzerAppController.createTrack(), where the SceneGraph.addTrack() call returns -1 instead of a valid, non-negative ID.
However, if I create a Runnable with Thread.sleep(2000) before calling loadStateFile(), everything works correctly.
So it appears the problem is a race condition: we try to add a track before SceneGraph is ready.
To fix, ensure app initialization is complete, then load the CML file.
Hi, have tried to search further but cannot find this jar file that is needed to run the server version of the program.
Tried to build myself but that did not give me the jar file.
Is it possible to add this file or have it as a link?
Hi,
Am trying to install Corelyzer 2.1.0 on a macOS (Catalina 10.15.7) but am repeatedly failing to do so.
When I open the Corelyzer.app, the message "To open 'Corelyzer.app' you need to install the legacy Java SE 6 runtime" appears with a link to the "Download Java for OS X 2017-001" webpage (https://support.apple.com/kb/DL1572?locale=en_US). Unfortunately, this Java version is intended for macOS 10.7 to 10.13...and cannot be installed on my system...
I have the recommended Java Version 8 Update 271 (filesize: 80.75 MB) installed on my system but it seems not sufficient...the same message appears and the Corelyzer.app won't open.
Very best,
walt
If Corelyzer is already running, opening a CML file by double-clicking causes that file to be opened in a new instance of Corelyzer, instead of being opened in the existing one.
Steps:
Desired behavior is to always prefer the section image in an overlap. The topmost section image will be selected in the case of overlapping section images.
Hi! I'm trying to build corelyzer on my 4.10.6-1-ARCH linux machine from the source code, but I see no list of required dependencies. (on this presentation it lists the app as cross-platform)
After running sh gradlew clean package
I get the following error:
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
FAILURE: Build failed with an exception.
* Where:
Build file '/home/japhir/Downloads/corelyzer-2.0.4_rc4/corelyzer-2.0.4_rc4/app/build.gradle' line: 14
* What went wrong:
A problem occurred evaluating project ':app'.
Cause: You must specify a urls for a Maven repo.
* Try:
Run with -s or -d option to get more details. Run with -S option to get the full (very verbose) stacktrace.
BUILD FAILED
Total time: 1.826 secs
I look forward to hearing from you! :-)
When Corelyzer is launched, the Preferences dialog always appears. It should only appear on a first launch (if no Corelyzer prefs are found) for the user to establish initial settings.
Build errors when gradle.build sourceCompatibility and targetCompatibility values are changed from 1.8 to 1.11:
"The package org.xml.sax is accessible from more than one module"
"The package org.w3c.dom is accessible from more than one module"
[associated type resolution fallout errors]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.