Skip to content

Commit

Permalink
initial commit for public release
Browse files Browse the repository at this point in the history
  • Loading branch information
aliounis committed Sep 10, 2021
0 parents commit 8576b12
Show file tree
Hide file tree
Showing 1,111 changed files with 104,109 additions and 0 deletions.
19 changes: 19 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
.*
source/__pycache__/

# compiled python modules.
*.pyc
*.c
*.so
*.cpp
*.html

# egg metadata
*.egg-info

tests/
build/
dist/
documentation/_build/
giant/catalogues/data/

173 changes: 173 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
NASA OPEN SOURCE SOFTWARE AGREEMENT

NASA OPEN SOURCE AGREEMENT VERSION 1.3

THIS OPEN SOURCE AGREEMENT ("AGREEMENT") DEFINES THE RIGHTS OF USE, REPRODUCTION, DISTRIBUTION, MODIFICATION AND
REDISTRIBUTION OF CERTAIN COMPUTER SOFTWARE ORIGINALLY RELEASED BY THE UNITED STATES GOVERNMENT AS REPRESENTED BY THE
GOVERNMENT AGENCY LISTED BELOW ("GOVERNMENT AGENCY"). THE UNITED STATES GOVERNMENT, AS REPRESENTED BY GOVERNMENT AGENCY,
IS AN INTENDED THIRD-PARTY BENEFICIARY OF ALL SUBSEQUENT DISTRIBUTIONS OR REDISTRIBUTIONS OF THE SUBJECT SOFTWARE.
ANYONE WHO USES, REPRODUCES, DISTRIBUTES, MODIFIES OR REDISTRIBUTES THE SUBJECT SOFTWARE, AS DEFINED HEREIN, OR ANY PART
THEREOF, IS, BY THAT ACTION, ACCEPTING IN FULL THE RESPONSIBILITIES AND OBLIGATIONS CONTAINED IN THIS AGREEMENT.

Government Agency: National Aeronautics and Space Administration

Government Agency Original Software Designation: GSC-18758-1

Government Agency Original Software Title: Goddard Image Analysis and Navigation Tool (GIANT) v1.0

User Registration Requested. Please Visit https://opensource.gsfc.nasa.gov

Government Agency Point of Contact for Original Software: Darryl Mitchell, SRA, (301) 286- 5810

1. DEFINITIONS

1. "Contributor" means Government Agency, as the developer of the Original Software, and any entity that makes a
modification.
2. "Covered Patents" mean patent claims licensable by a Contributor that are necessarily infringed by the use or
sale of its Modification alone or when combined with the Subject Software.
3. "Display" means the showing of a copy of the Subject Software, either directly or by means of an image, or any
other device.
4. "Distribution" means conveyance or transfer of the Subject Software, regardless of means, to another.
5. "Larger Work" means computer software that combines Subject Software, or portions thereof, with software
separate from the Subject Software that is not governed by the terms of this Agreement.
6. "Modification" means any alteration of, including addition to or deletion from, the substance or structure of
either the Original Software or Subject Software, and includes derivative works, as that term is defined in the
Copyright Statute, 17 USC 101. However, the act of including Subject Software as part of a Larger Work does not
in and of itself constitute a Modification.
7. "Original Software" means the computer software first released under this Agreement by Government Agency with
Government Agency designation GSC-18758-1 and entitled Goddard Image Analysis and Navigation Tool (GIANT) v1.0,
including source code, object code and accompanying documentation, if any.
8. "Recipient" means anyone who acquires the Subject Software under this Agreement, including all Contributors.
9. "Redistribution" means Distribution of the Subject Software after a Modification has been made.
10. "Reproduction" means the making of a counterpart, image or copy of the Subject Software.
11. "Sale" means the exchange of the Subject Software for money or equivalent value.
12. "Subject Software" means the Original Software, Modifications, or any respective parts thereof.
13. "Use" means the application or employment of the Subject Software for any purpose.

2. GRANT OF RIGHTS

1. Under Non-Patent Rights: Subject to the terms and conditions of this Agreement, each Contributor, with respect
to its own contribution to the Subject Software, hereby grants to each Recipient a non-exclusive, world-wide,
royalty-free license to engage in the following activities pertaining to the Subject Software:

1. Use
2. Distribution
3. Reproduction
4. Modification
5. Redistribution
6. Display

2. Under Patent Rights: Subject to the terms and conditions of this Agreement, each Contributor, with respect to
its own contribution to the Subject Software, hereby grants to each Recipient under Covered Patents a
non-exclusive, world-wide, royalty-free license to engage in the following activities pertaining to the Subject
Software:

1. Use
2. Distribution
3. Reproduction
4. Sale
5. Offer for Sale

3. The rights granted under Paragraph B. also apply to the combination of a Contributor's Modification and the
Subject Software if, at the time the Modification is added by the Contributor, the addition of such Modification
causes the combination to be covered by the Covered Patents. It does not apply to any other combinations that
include a Modification.
4. The rights granted in Paragraphs A. and B. allow the Recipient to sublicense those same rights. Such sublicense
must be under the same terms and conditions of this Agreement.

3. OBLIGATIONS OF RECIPIENT

1. Distribution or Redistribution of the Subject Software must be made under this Agreement except for additions
covered under paragraph 3H.

1. Whenever a Recipient distributes or redistributes the Subject Software, a copy of this Agreement must be
included with each copy of the Subject Software; and
2. If Recipient distributes or redistributes the Subject Software in any form other than source code,
Recipient must also make the source code freely available, and must provide with each copy of the Subject
Software information on how to obtain the source code in a reasonable manner on or through a medium
customarily used for software exchange.

2. Each Recipient must ensure that the following copyright notice appears prominently in the Subject Software:

Copyright © 2021 United States Government as represented by the Administrator of the National Aeronautics and
Space Administration. No copyright is claimed in the United States under Title 17, U.S. Code. All Other Rights
Reserved.

3. Each Contributor must characterize its alteration of the Subject Software as a Modification and must identify
itself as the originator of its Modification in a manner that reasonably allows subsequent Recipients to
identify the originator of the Modification. In fulfillment of these requirements, Contributor must include a
file (e.g., a change log file) that describes the alterations made and the date of the alterations, identifies
Contributor as originator of the alterations, and consents to characterization of the alterations as a
Modification, for example, by including a statement that the Modification is derived, directly or indirectly,
from Original Software provided by Government Agency. Once consent is granted, it may not thereafter be revoked.
4. A Contributor may add its own copyright notice to the Subject Software. Once a copyright notice has been added
to the Subject Software, a Recipient may not remove it without the express permission of the Contributor who
added the notice.
5. A Recipient may not make any representation in the Subject Software or in any promotional, advertising or other
material that may be construed as an endorsement by Government Agency or by any prior Recipient of any product
or service provided by Recipient, or that may seek to obtain commercial advantage by the fact of Government
Agency's or a prior Recipient's participation in this Agreement.
6. In an effort to track usage and maintain accurate records of the Subject Software, each Recipient, upon
receipt of the Subject Software, is requested to register with Government Agency by visiting the following
website: https://opensource.gsfc.nasa.gov. Recipient's name and personal information shall be used for
statistical purposes only. Once a Recipient makes a Modification available, it is requested that the Recipient
inform Government Agency at the web site provided above how to access the Modification.
7. Each Contributor represents that its Modification is believed to be Contributor's original creation and does not
violate any existing agreements, regulations, statutes or rules, and further that Contributor has sufficient
rights to grant the rights conveyed by this Agreement.
8. A Recipient may choose to offer, and to charge a fee for, warranty, support, indemnity and/or liability
obligations to one or more other Recipients of the Subject Software. A Recipient may do so, however, only on
its own behalf and not on behalf of Government Agency or any other Recipient. Such a Recipient must make it
absolutely clear that any such warranty, support, indemnity and/or liability obligation is offered by that
Recipient alone. Further, such Recipient agrees to indemnify Government Agency and every other Recipient for
any liability incurred by them as a result of warranty, support, indemnity and/or liability offered by such
Recipient.

9. A Recipient may create a Larger Work by combining Subject Software with separate software not governed by the
terms of this agreement and distribute the Larger Work as a single product. In such case, the Recipient must
make sure Subject Software, or portions thereof, included in the Larger Work is subject to this Agreement.
10. Notwithstanding any provisions contained herein, Recipient is hereby put on notice that export of any goods or
technical data from the United States may require some form of export license from the U.S. Government. Failure
to obtain necessary export licenses may result in criminal liability under U.S. laws. Government Agency neither
represents that a license shall not be required nor that, if required, it shall be issued. Nothing granted
herein provides any such export license.

4. DISCLAIMER OF WARRANTIES AND LIABILITIES; WAIVER AND INDEMNIFICATION

1. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY OF ANY KIND, EITHER EXPRESSED,
IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO
SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR FREEDOM FROM
INFRINGEMENT, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF
PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN ANY MANNER, CONSTITUTE AN
ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR RECIPIENT OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE
PRODUCTS OR ANY OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE. FURTHER, GOVERNMENT AGENCY
DISCLAIMS ALL WARRANTIES AND LIABILITIES REGARDING THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE,
AND DISTRIBUTES IT "AS IS."
2. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS AGAINST THE UNITED STATES GOVERNMENT, ITS
CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT'S USE OF THE SUBJECT SOFTWARE
RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES, EXPENSES OR LOSSES ARISING FROM SUCH USE, INCLUDING ANY DAMAGES
FROM PRODUCTS BASED ON, OR RESULTING FROM, RECIPIENT'S USE OF THE SUBJECT SOFTWARE, RECIPIENT SHALL INDEMNIFY
AND HOLD HARMLESS THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY PRIOR
RECIPIENT, TO THE EXTENT PERMITTED BY LAW. RECIPIENT'S SOLE REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE,
UNILATERAL TERMINATION OF THIS AGREEMENT.

5. GENERAL TERMS

1. Termination: This Agreement and the rights granted hereunder will terminate automatically if a Recipient fails
to comply with these terms and conditions, and fails to cure such noncompliance within thirty (30) days of
becoming aware of such noncompliance. Upon termination, a Recipient agrees to immediately cease use and
distribution of the Subject Software. All sublicenses to the Subject Software properly granted by the
breaching Recipient shall survive any such termination of this Agreement.
2. Severability: If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not
affect the validity or enforceability of the remainder of the terms of this Agreement.
3. Applicable Law: This Agreement shall be subject to United States federal law only for all purposes, including,
but not limited to, determining the validity of this Agreement, the meaning of its provisions and the rights,
obligations and remedies of the parties.
4. Entire Understanding: This Agreement constitutes the entire understanding and agreement of the parties relating
to release of the Subject Software and may not be superseded, modified or amended except by further written
agreement duly executed by the parties.
5. Binding Authority: By accepting and using the Subject Software under this Agreement, a Recipient affirms its
authority to bind the Recipient to all terms and conditions of this Agreement and that that Recipient hereby
agrees to all terms and conditions herein.
6. Point of Contact: Any Recipient contact with Government Agency is to be directed to the designated
representative as follows: Darryl Mitchell, SRA, (301) 286-5810.
Binary file added LICENSE.pdf
Binary file not shown.
62 changes: 62 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
Copyright 2021 United States Government as represented by the Administrator of the National Aeronautics and Space
Administration. No copyright is claimed in the United States under Title 17, U.S. Code. All Other Rights Reserved.

The Goddard Image Analysis and Navigation Tool (GIANT) is a collection of utilities and
scripts that aims to make all aspects of Optical Navigation (OpNav) and Camera Calibration easy.

To install it is recommended that you use the
[mamba-forge python distribution/package manager](https://github.com/conda-forge/miniforge#mambaforge).

More detailed instructions can be found in the GIANT documentation (documentation/html/installation.html)

The first thing to do is to download the GIANT git repository:

git clone [email protected]:nasa/giant.git

Once the download is complete, cd into the new giant directory

cd giant

GIANT is designed to work with python 3.5+ so it is likely that we will need to create a new environment in mamba for
our work. To create an environment from the terminal (or mamba prompt for windows) simply type

mamba create -n giant_env python=3 opencv matplotlib scipy pandas numpy cython pyqt astropy lxml sphinx spiceypy c-compiler openmp astroquery dill psutil imagemagick

which will create a virtual environment with python and all of the usual python tools (setuptools, pip,
etc). Once the virtual environment has been created you can run

conda activate giant_env

to activate the environment. Activating the environment basically adjusts your paths/aliases so that "python", "pip",
etc now point to the virtual environment executables.

If you are on OSX you will also likely need to set the environment variable CPATH

export CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include

or

export CPATH=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include

to set where to find the system headers.

With our GIANT environment activated we are good to install GIANT. GIANT is installed like any normal python
package. Simply navigate to the root directory of GIANT and type (note that we use the develop option here because
GIANT is still under development and this allows you to update with a simple git pull.

cd giant
python setup.py develop

This will install the GIANT package to your virtual environment along with all of its dependencies. Once GIANT is
installed you can run some basic tests to make sure everything is working by entering the unittests directory and
typing

cd unittests
python -Wignore -m unittest discover

This might return some warnings but at the end of it all it should say "ok" and something about all of the
tests passing.

GIANT is now installed and you can begin navigating.

See the GIANT documentation (documentation/html/index.html) for more information.
Binary file not shown.
Binary file not shown.
Loading

0 comments on commit 8576b12

Please sign in to comment.