MCPcopy Index your code
hub / github.com/AstroImageJ/astroimagej

github.com/AstroImageJ/astroimagej @6.0.9.01

Chat with this repo
repository ↗ · DeepWiki ↗ · release 6.0.9.01 ↗ · + Follow
17,687 symbols 95,249 edges 1,062 files 5,985 documented · 34% updated 3d ago6.0.9.01 · 2026-06-29★ 3334 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

AstroImageJ

Merged project of Dr. Karen Collins' AstroImageJ, using the Why Java Launcher.

Developer Instructions

General Use

Clone the repo locally, then run gradlew packageAij[For<Your-OS-Here>] (leave off what is in square brackets to generate all of them) in the repo's folder. The built installation pages will appear in your-project-root/build/distributions. To build only ij.jar or astronomy_.jar, run gradlew :ij:build or gradlew :Astronomy_:build, respectively.

To run AIJ, use gradlew aijRun. The generated directory, AIJ-Run, will contain the generated version of AIJ.

Special Options

The tasks copyAppImage and runAij are configured through text files in the project root, appImageLocation.txt and devLaunchOptions.txt, respectively. Both files are ignored by git and will not be commited to the repo. Spelling and case sensitive.

appImageLocation.txt contains the absolute path to an AIJ distribution, so that development builds can be tested on a medium-term basis without using Gradle or and IDE to update it each time. When developing in Intellij Idea, if this file is present, the copyAppImage task will be run automatically when the hammer icon is clicked.

devLaunchOptions.txt contains the Java launch arguments, eg. -Xmx5000m -Xms256m, the same as the config file AstroImageJ.cfg does for normal installations of AIJ. If present, these options are used in place of the defaults for runAij.

Use in Intellij Idea:

In Idea, go to File > New > Project From Version Control (If it has not opened to a project, select 'Get from Version Control' on the Welcome window.) Enter https://github.com/keastrid/astroimagej for the URL, and direct the path to where you want the project, then click 'clone'. If you had a project open, it will ask you which window to open AIJ in, choose your preference.

Once open, it may notify you that it doesn't have a JDK - if that is so, click the bar and point AIJ to your JDK, or you can have it install one for you.

On the right-hand side, you will see a button labelled 'Gradle' with a little elephant on top. Clicking it wil open the Gradle sidebar. Navigate to AIJ-Merged > Tasks > build > astroimagej development. Double-click on runAij to build and run the project. To build the project, double-click on any of the packageAij tasks. The built zip(s) will appear in your-project-root/build/distributions. To build only ij.jar or astronomy_.jar, navigate to the build commands under their respective modules (instead of Tasks > ..., it will be ij > ... or Astronomy_ > ...). The built jar will be in your-project-root//build/libs.

Website development

The website is built using Astro, with the majority of the content being written in Markdown. It lives in the website folder of this repository. Documentation uses Astro Starlight, with the pages in the website/srs/content/docs folder.

Build Instructions

Setup requirements: - Node.js

Run npm install in the website folder to install the required dependencies.

Run npm run build to build the production website.

Run npm run dev to start a development server, which will automatically rebuild the website when changes are made.

Code Signing Policy

[SignPath] Free code signing on Windows provided by SignPath.io, certificate by SignPath Foundation

Team Members

Authors

Privacy Policy

This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it.

Credits

Icons

AIJ icon

The AIJ icon is a modified version of this image from ESA/Hubble, Creative Commons Attribution 4.0 International

Credit: NASA, ESA, J. Clarke (Boston University, USA), and Z. Levay (STScI)

The image was modified to remove the planet shadow.

Other icons

Other icons are separately licensed. Please see the license files in the icon folders for more information.

Included libraries

ImageJ

A modified version of ImageJ, which is in the public domain.

Nom.tam.fits

Licensed in the public domain.

Nashorn

Licensed under GPL-2.0 with classpath exception.

Pdfbox-graphics2d

Licensed under Apache 2.0.

JNA

Licensed under Apache 2.0.

Sigstore-java

Licenced under Apache 2.0.

FastDoubleParser

Licensed under MIT license.

Hipparchus

Licensed under Apache 2.0.

JAMA

Licensed in the public domain.

BiSlider

All Rights Reserved, with permission to use, copy, modify and distribute this software and its documentation for educational, research and non-profit purposes. See the full license here.

For AstroImageJ, additional permission under GNU GPL version 3 section 7 is granted: If you modify this Program (AstroImageJ), or any covered work, by linking or combining it with BiSlider (or a modified version of that library), containing parts covered by the terms of BiSlider's license, the licensors of this Program (AstroImageJ) grant you additional permission to convey the resulting work.

See the GPL FAQ for details on use of GPL incompatible libraries in a GPL work.

Stack Sorter

Licensed under BSD-3-clause.

Json Simple

Licensed under Apache 2.0.

Interactive 3D Plot

Licensed under GPL 3.0

Sponsors

[SignPath] Free code signing on Windows provided by SignPath.io, certificate by SignPath Foundation

Extension points exported contracts — how you extend this code

CommandListener (Interface)
Plugins that implement this interface are notified when ImageJ is about to run a menu command. There is an example plu [8 …
ij/src/main/java/ij/CommandListener.java
ContentPainterListener (Interface)
The listener interface for who want to receive events from the BiSlider. <tr [33 implementers]
Astronomy_/src/main/java/bislider/com/visutools/nav/bislider/ContentPainterListener.java
ImageTiler (Interface)
Image tiling interface. This interface supports general multi-dimensional tiling. However, FITS tiles are always 2-dimen [6 …
Nom_Fits/src/main/java/nom/tam/image/ImageTiler.java
Params (Interface)
(no doc)
aij-conventions/src/main/kotlin/com/astroimagej/git/GitVersionInfo.kt
ImageListener (Interface)
Plugins that implement this interface are notified when an image is opened, closed or updated. The Plugins/Utilitie [20 …
ij/src/main/java/ij/ImageListener.java
JSONAware (Interface)
Beans that support customized output of JSON text shall implement this interface. @author FangYidong<fangyidong@yahoo.co [5 …
Astronomy_/src/main/java/astroj/json/simple/JSONAware.java
FitsElement (Interface)
I/O interface for various FITS file elements. [8 implementers]
Nom_Fits/src/main/java/nom/tam/fits/FitsElement.java
PlugIn (Interface)
Plugins that acquire images or display windows should implement this interface. Plugins that process images should im [468 …
ij/src/main/java/ij/plugin/PlugIn.java

Core symbols most depended-on inside this repo

add
called by 3937
Nom_Fits/src/main/java/nom/tam/util/Cursor.java
set
called by 1654
ij/src/main/java/ij/Prefs.java
get
called by 1529
ij/src/main/java/ij/Prefs.java
equals
called by 1507
ij/src/main/java/ij/gui/Roi.java
length
called by 995
Nom_Fits/src/main/java/nom/tam/util/ReadWriteAccess.java
get
called by 889
Astronomy_/src/main/java/Jama/Matrix.java
addActionListener
called by 849
ij/src/main/java/ij/plugin/ControlPanel.java
append
called by 837
Nom_Fits/src/main/java/nom/tam/fits/header/hierarch/IHierarchKeyFormatter.java

Shape

Method 16,161
Class 1,351
Interface 85
Enum 76
Function 14

Languages

Java99%
Kotlin1%
TypeScript1%

Modules by API surface

ij/src/main/java/ij/macro/Functions.java362 symbols
Astronomy_/src/main/java/astroj/JSkyCalc.java288 symbols
ij/src/main/java/ij/gui/Plot.java264 symbols
ij/src/main/java/ij/process/ImageProcessor.java221 symbols
ij/src/main/java/ij/ImagePlus.java208 symbols
ij/src/main/java/ij/gui/Roi.java194 symbols
Astronomy_/src/main/java/Astronomy/MultiPlot_.java187 symbols
Nom_Fits/src/test/java/nom/tam/fits/BinaryTableNewTest.java161 symbols
Nom_Fits/src/main/java/nom/tam/fits/BinaryTable.java155 symbols
Astronomy_/src/main/java/astroj/AstroStackWindow.java149 symbols
ij/src/main/java/ij/astro/gui/GenericSwingDialog.java146 symbols
ij/src/main/java/ij/IJ.java146 symbols

For agents

$ claude mcp add astroimagej \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page