Code Monkey home page Code Monkey logo

ssusi's Introduction



SSUSI Auroral Area Map Rendering


Building:

This project inclues a pre-built JAR file. It can be used on most systems with a Java virtual machine installed (available here: https://www.java.com/en/download/) simply by double clicking on the file in your file browser, or by invoking Java from the commandline in the form "java render.jar". This is the reccomended method for using this project.

While not reccomended, this project can be built from source with most java compilers. The pre-compiled JAR files are tested with Java 1.8 and Java 1.7. No earlier versions have been tested. On a properly configured machine open the location of the downloaded source, then run the command "javac " for each of the "*.java" files inside the package. Then run "java ssusiRender". Compiling from a source-code version different from the current release version may create an executible with errors and bugs!

Usage:

CDF files from the SSUSI project page should be placed in a directory without any other types of files.

From the program window, use the "Choose Directory" button to select the directory with the data of interest, then press the "Generate Maps" button. The individual files can then be browsed with the "Next" and "Back" buttons.

A single left-click in the map area will give information about the clicked point.

Interesting images can be exported in PNG format via the "Save Image" button.

Individual layers within the netCDF data files can be viewed by selecting the appropriate layer number from the drop-down box. Layers 3 and 4 are LBHL and LBHS, respectively (probably).

The top drop-down box under the button labeled "Choose Directory" is used to select which geographic pole is of interest.

The "Magnetic Map" button displays a visualization of a 24 hour magnetic clock, with the border between the colors grey and green being magnetic midnight, and the other colors in the direction of the green wedge increasing in increments of 3 hours. That is to say, the border between green and grey is 0, and each traversal over a wedge adds or subtracts 3 hours.

Fine details can be examined through use of the "Zoom View" button. This will open a small window with a duplicate map. A left-click on the map will zoom in at the point clicked. A right-click will display information about a point in the title bar of the window. The button at the bottom of the page allows the map to be reset to it's original size. There is no loss of fidelity by zooming; each zoomed view is a new image calculated directly from the data.

In the settings menu, the size of each color's bucket can be changed. This "bucket" is the number of values that a single RGB value will represent. A smaller bucket size will allow greater fidelity in the conversion from numerical representation to visual color representation.

Bugs and Feature Requests:

Place a bug report or feature request in the issues tab on this project's github page.

Legal:

This software released under Creative Commons 4.0 Share-Alike Attribution License. Human readable summary here: http://creativecommons.org/licenses/by-sa/4.0/

Created using libraries provided by UNIDATA. Unidata license: Portions of this software were developed by the Unidata Program at the University Corporation for Atmospheric Research.

Access and use of this software shall impose the following obligations and understandings on the user. The user is granted the right, without any fee or cost, to use, copy, modify, alter, enhance and distribute this software, and any derivative works thereof, and its supporting documentation for any purpose whatsoever, provided that this entire notice appears in all copies of the software, derivative works and supporting documentation. Further, UCAR requests that the user credit UCAR/Unidata in any publications that result from the use of this software or in any product that includes this software, although this is not an obligation. The names UCAR and/or Unidata, however, may not be used in any advertising or publicity to endorse or promote any products or commercial entity unless specific written permission is obtained from UCAR/Unidata. The user also understands that UCAR/Unidata is not obligated to provide the user with any support, consulting, training or assistance of any kind with regard to the use, operation and performance of this software nor to provide the user with any updates, revisions, new versions or "bug fixes."

THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.

ssusi's People

Contributors

radioandrea avatar

Watchers

 avatar  avatar  avatar

ssusi's Issues

Window resize breaks point recognition

If the window is resized (and therefore the JFrame containing the map), the left-mouse point information feature will return a bad value, and could cause an indexoutofbounds error.

Increase speed of initial rendering

Initial indexing and rendering is slow. Render of individual flies afterwards is also slow. Attempt to streamline existing loops and sequences to shave off some time.

Add user directed data pull

Allow the user to pull ssusi data without leaving the program. FTP is most likely the best source of information, built-in java libs should be able to cover the heavy lifting.

Back button not working

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.elementData(ArrayList.java:400)
at java.util.ArrayList.get(ArrayList.java:413)
at ssusiRender$3.actionPerformed(ssusiRender.java:305)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6516)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6281)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4872)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Zoom feature

User recommended the ability to zoom in on a target location.

Change rendering object

Change rendering object from BufferedImage to another image object in order to allow accurate mouse locations on the image.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.