/RAiDER

Raytracing Atmospheric Delay Estimation for RADAR

Primary LanguagePythonApache License 2.0Apache-2.0

RAiDER

Raytracing Atmospheric Delay Estimation for RADAR

Language License Codacy Badge CircleCI Coverage Status

RAiDER-tools is a package in Python which contains tools to calculate tropospheric corrections for Radar using a raytracing implementation. Its development was funded under the NASA Sea-level Change Team (NSLCT) program, the Earth Surface and Interior (ESI) program, and the NISAR Science Team (NISAR-ST) (NTR-51433). U.S. Government sponsorship acknowledged.

Copyright (c) 2019-2021, California Institute of Technology ("Caltech"). All rights reserved.

THIS IS RESEARCH CODE PROVIDED TO YOU "AS IS" WITH NO WARRANTIES OF CORRECTNESS. USE AT YOUR OWN RISK.

Contents


1. Software Dependencies

Below we list the dependencies for RAiDER. A complete list is also provided in the environment.yml file.

Python dependencies

Python Jupyter dependencies

For the best experience using RAiDER with Jupyter, see Installing jupyter_contrib_nbextensions webpage.


2. Downloading RAiDER

Option 1: download the source code for RAiDER and unzip to the location where you want to keep the code

Option 2: clone to the repository to your system.

git clone https://github.com/dbekaert/RAiDER.git

3. Installing RAiDER

RAiDER currently works on *nix systems, and has been tested on the following systems:

  • Ubuntu v.16 and up
  • Mac OS v.10 and up

With Conda

RAiDER was designed to work with Conda a cross-platform way to use Python that allows you to setup and use "virtual environments." These can help to keep dependencies for different sets of code separate. Conda is distrubed as Anaconda or Miniconda, a light-weight version of Anaconda. See here for help installing Anaconda and here for installing Miniconda.

git clone https://github.com/dbekaert/RAiDER.git
conda env create -f ./RAiDER/environment.yml
conda activate RAiDER
python setup.py install

Other Installation Options

If not using the setup.py, users should ensure RAiDER and dependencies are included on their PATH and PYTHONPATH, and the Geometry module is compiled such it can be imported as Raider.Geo2rdr. For c-shell this can be done as follows (replace "RAiDERREPO" to the location where you have cloned the RAiDER repository):

setenv PYTHONPATH $PYTHONPATH:/RAiDERREPO/tools/RAiDER
set PATH $PATH:'/RAiDERREPO/tools/bin'

Common Installation Issues

  1. This package uses GDAL and g++, both of which can be tricky to set up correctly. GDAL in particular will often break after installing a new program If you receive error messages such as the following:
ImportError: ~/anaconda3/envs/RAiDER/lib/python3.7/site-packages/matplotlib/../../../libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ~/anaconda3/envs/RAiDER/lib/python3.7/site-packages/matplotlib/ft2font.cpython-37m-x86_64-linux-gnu.so)
ImportError: libtiledb.so.1.6.0: cannot open shared object file: No such file or directory
***cmake: ~/anaconda3/envs/RAiDER/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by cmake)***

try running the following commands within your RAiDER conda environment:

conda update --force-reinstall libstdcxx-ng
conda update --force-reinstall gdal libgdal
  1. This package requires both C++ and C headers, and the system headers are used for some C libraries. If running on a Mac computer, and "python setup.py build" results in a message stating that some system library header file is missing, try the following steps, and accept the various licenses and step through the installation process. Try re-running the build step after each update:
xcode-select --install
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

Testing your installation

To test the installation was successfull you can run the following tests:

py.test test/
raiderDelay.py -h

To enable automatic CircleCI Tests from a pull requests

You will need to make sure that CircleCI is an authorized OAuth application from Github. Simply sign in here using your github account.


4. Setup of third party weather model access

RAiDER has the ability to download weather models from third-parties; some of which require license agreements. See here for details.


5. Running RAiDER and Documentation

For detailed documentation, examples, and Jupyter notebooks see the RAiDER-docs repository. We welcome contributions of other examples on how to leverage the RAiDER (see here for instructions). raiderDelay.py -h provides a help menu and list of example commands to get started. The RAiDER scripts are highly modulized in Python and allows for building your own processing workflow.


6. Citation

TODO


7. Contributors

  • David Bekaert
  • Jeremy Mauarer
  • Raymond Hogenson
  • Heresh Fattahi
  • Yang Lei
  • Rohan Weeden
  • Simran Sangha
  • other community members

We welcome community contributions. For instructions see here.