All Projects → MinesJTK → jtk

MinesJTK / jtk

Licence: Apache-2.0 license
The Mines Java Toolkit

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to jtk

Pism
repository for the Parallel Ice Sheet Model (PISM)
Stars: ✭ 61 (+15.09%)
Mutual labels:  geophysics, scientific-computing
Yt
Main yt repository
Stars: ✭ 279 (+426.42%)
Mutual labels:  geophysics, scientific-computing
Ruptures
ruptures: change point detection in Python
Stars: ✭ 654 (+1133.96%)
Mutual labels:  signal-processing, scientific-computing
Simpeg
Simulation and Parameter Estimation in Geophysics - A python package for simulation and gradient based parameter estimation in the context of geophysical applications.
Stars: ✭ 283 (+433.96%)
Mutual labels:  geophysics, scientific-computing
Gdl
GDL - GNU Data Language
Stars: ✭ 104 (+96.23%)
Mutual labels:  geophysics, scientific-computing
Awesome Physics
🌌 A collaborative list of awesome software for exploring Physics concepts
Stars: ✭ 154 (+190.57%)
Mutual labels:  geophysics, scientific-computing
mdct
A fast MDCT implementation using SciPy and FFTs
Stars: ✭ 42 (-20.75%)
Mutual labels:  signal-processing, scientific-computing
ssj
Social Signal Processing for Android
Stars: ✭ 24 (-54.72%)
Mutual labels:  signal-processing
Audio Signal Processing
Audio or speech signal processing guide.
Stars: ✭ 45 (-15.09%)
Mutual labels:  signal-processing
petgem
petgem is a parallel and high-order code for active-source (e.g. CSEM) and passive-source (e.g. MT) geophysics electromagnetic modeling in 3D arbitrary marine/land problems under anisotropic conductivities.
Stars: ✭ 18 (-66.04%)
Mutual labels:  geophysics
ssqueezepy
Synchrosqueezing, wavelet transforms, and time-frequency analysis in Python
Stars: ✭ 315 (+494.34%)
Mutual labels:  signal-processing
PyRates
Open-source, graph-based Python code generator and analysis toolbox for dynamical systems (pre-implemented and custom models). Most pre-implemented models belong to the family of neural population models.
Stars: ✭ 33 (-37.74%)
Mutual labels:  scientific-computing
SciCompforChemists
Scientific Computing for Chemists text for teaching basic computing skills to chemistry students using Python, Jupyter notebooks, and the SciPy stack. This text makes use of a variety of packages including NumPy, SciPy, matplotlib, pandas, seaborn, NMRglue, SymPy, scikit-image, and scikit-learn.
Stars: ✭ 65 (+22.64%)
Mutual labels:  scientific-computing
antropy
AntroPy: entropy and complexity of (EEG) time-series in Python
Stars: ✭ 111 (+109.43%)
Mutual labels:  signal-processing
juceSynths
Collection of JUCE synthesisers utilising the Maximilian library.
Stars: ✭ 78 (+47.17%)
Mutual labels:  signal-processing
Speech Feature Extraction
Feature extraction of speech signal is the initial stage of any speech recognition system.
Stars: ✭ 78 (+47.17%)
Mutual labels:  signal-processing
paper-moho-inversion-tesseroids
Source code, data, and model results for "Fast non-linear gravity inversion in spherical coordinates with application to the South American Moho". Published in the Geophysical Journal International.
Stars: ✭ 27 (-49.06%)
Mutual labels:  geophysics
audiowmark
Audio Watermarking
Stars: ✭ 101 (+90.57%)
Mutual labels:  signal-processing
payton
Payton! Kickstart any 3D OpenGL + GTK Ideas in a few seconds!
Stars: ✭ 45 (-15.09%)
Mutual labels:  scientific-computing
bispy
BiSPy : a python framework for signal processing of bivariate signals
Stars: ✭ 19 (-64.15%)
Mutual labels:  signal-processing

The Mines Java Toolkit

Build Status Codecov license GitHub release Maven Central Awesome

The Mines Java Toolkit (Mines JTK) is a set of Java packages and native (non-Java) software libraries for science and engineering. Applications currently include digital signal processing, linear algebra, optimization, meshing, interpolation, and 2D and 3D graphics.

The Mines JTK is licensed under the Apache License, Version 2.0.

Using the Mines JTK

To use the Mines JTK, simply include its JAR (Java archive) among any other external dependencies for your project. For example, edu-mines-jtk-1.0.0.jar can be found by searching Maven Central. Most build tools can be easily configured to automatically download dependencies from this repository, which also holds JAR files containing documentation (javadoc) and source code for the Mines JTK.

Getting the source code

If you want to build the Mines JTK yourself, you should first download its source code from GitHub. If you clone this source code repository using git, then you will be able to easily update your copy as others make changes. Alternatively, you may use the Downloads link provided by GitHub to obtain a current snapshot of the code.

If you are using Linux or Mac OS X (10.7+), then you already have a git command-line client. Various git clients with graphical user interfaces are also available for Linux, Mac OS X, and Windows, and git is also available within popular integrated development environments. Note that git will be necessary if you wish to propose changes (submit pull requests) for the master branch of the source code repository.

To determine if you have a git command-line client, in a terminal window type git. If that command is found, then

  1. cd to the directory that will contain your directory jtk and
  2. type the command:
git clone https://github.com/MinesJTK/jtk.git

This command will create a directory jtk in your current working directory. The subdirectory .git contains a complete copy of the repository for the Mines Java Toolkit. If instead you simply use the GitHub Downloads link, then this subdirectory will be absent.

The directory jtk/ includes the following subdirectories:

Directory Description
core/ everything needed to build and test the Mines Java Toolkit
demo/ demonstration programs written in Java and Jython
docs/ extra (not API) documentation for some packages
gradle/ used by the Gradle wrapper to build the Mines JTK
misc/ miscellaneous tools for development and maintenance

Installing the Java Development Kit (JDK)

Before building the Mines JTK, you must first install Java SE JDK 7 (or later) On Windows, we like to put tools such as the JDK in a folder named C:\pro\. This folder name is shorter than "C:\Program Files" and contains no spaces, which makes it easy to specify in scripts and environment variables.

Building the Mines JTK

The Mines JTK can be built most easily using the included Gradle wrapper. Gradle is a tool for automatic software builds. You can download and install Gradle on your system, but you need not do so if you only want to build the Mines JTK. First cd into the directory jtk/, which contains files build.gradle, gradlew (for Mac OS and Linux) and gradlew.bat (for Windows). Then type the command gradlew (or sh gradlew) to build the Mines JTK. Look for the file core/build/libs/edu-mines-jtk-x.x.x.jar, for some version number x.x.x. You can use this JAR file like any other. However, depending on which packages you use, you may need other JAR files, called "dependencies." For example, the Mines JTK depends on JOGL for 3D graphics via OpenGL.

Gradle will automatically be downloaded the first time that you use the gradlew command. So you should first execute this command only when you have an internet connection.

The layout of directories and files for the Mines JTK was designed to conform to that expected by common build tools such as Gradle (and Maven). You may also use an integrated development environment (IDE), such as Eclipse or IntelliJ IDEA to build the Mines JTK. However, we strongly recommend that you first build the JTK from the command line, as described above.

Testing the Mines JTK

The full name of the default Gradle task performed by the command gradlew is :core:jar. We can perform other tasks, such as

gradlew test

which will build and run non-interactive unit tests.

gradlew distZip

to make a ZIP archive containing JAR files for the Mines JTK and all dependencies. To learn what tasks are available, we can use

gradlew tasks

Running demonstration programs

The Mines Java Toolkit is a set of classes intended for use in other programs. The demo subproject provides examples, Java classes with a method main, and Jython scripts. We can learn a lot about classes in the Mines JTK by running the demos and studying their source code. Try this:

gradlew run -P demo=mosaic.PlotFrameDemo

and this:

gradlew run -P demo=mosaic/PlotFrameDemo.py

The former command runs a Java class with a method main, and the latter runs a Jython script. In the property demo defined with the flag -P, the / instead of . and the suffix .py distinguish between the two cases. Despite their similar names, these demos are entirely different programs with different results.

Currently, the best way to learn about what demos are available is to browse the directories demo/src/main/[java, jython]/jtkdemo/.

3D graphics in the Mines JTK

Our packages for 3D graphics are built on JOGL, a Java binding for the OpenGL API. As a first demo that 3D graphics is working, type the command

gradlew run -P demo=ogl.HelloDemo

You should see a white square, painted via OpenGL. This demo program also prints the OpenGL vendor and version number. That number should not be less than 1.2.

Development using the Mines JTK

When developing your own software, you should not use package names that begin with "edu.mines.jtk", unless you are making modifications or additions to the Mines JTK that you wish to contribute back to us. (See the file license.txt The prefix edu.mines.jtk makes our class names unique.

Therefore, most classes that you write will have a different prefix, and your build process will create a JAR file with a different name. You might start by copying and modifying our demo directory layout and build.gradle.

In fact, this is how many of us work. We have our own private projects in which we implement new ideas with Java packages, which may or may not someday be included in the Mines JTK. (For convenience, the prefix for the package names in our private projects may be much shorter than "edu.mines.jtk".) Only those Java packages that are both well written and useful to others are eventually moved to edu.mines.jtk.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].