-
Notifications
You must be signed in to change notification settings - Fork 18
an API facilitating the access of MISR standard product files
License
nasa/MISR-Toolkit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Welcome to the MISR Toolkit
---------------------------
The MISR Toolkit is a simplified programming interface to access MISR L1B2, L2, and MISR-HR,
conventional and ancillary data products. It is an interface built upon HDF-EOS
that knows about MISR data products. It has the ability to:
- Specify regions to read based on geographic location and extent or the
more traditional path and block range
- Map between path, orbit, block, time range and geographic location
- Automatically stitch, unpack and unscale MISR data while reading
- Perform coordinate conversions between lat/lon, SOM x/y, block/line/sample
and line/sample of a data plane, which means geolocation can be computed
instantly without referring to an ancillary data set lookups
- Retrieve pixel acquistion time from L1B2 product files
- Read a slice of a multi-dimensional field into an 2-D data plane (eg. RetrAppMask[0][5])
- Convert MISR product files to IDL ENVI files
The MISR Toolkit has been tested on Linux CentOS 7, Mac OS X 10.14.6 and Windows 10.
It's core interface is C. There are also bindings for Python (2.7 and 3.x supported) and IDL.
Note that Python 2.7 is end of life and deprecated in MISR Toolkit.
Complete documentation and function reference
---------------------------------------------
Use a browser to view online documentation: https://nasa.github.io/MISR-Toolkit/html/index.html
Offline documentation packages are also available for download on the github releases page.
Third Party Library Dependencies
--------------------------------
The MISR Toolkit depends on the following libraries. Download links are provide
for your reference, but it is preferred to use the script "download_libraries"
in the source bundle "scripts" directory. Python users will still need to
download NumPy and install it according to NumPy instructions.
- HDF-EOS2.18v1.00 (https://observer.gsfc.nasa.gov/ftp/edhs/hdfeos/previous_releases)
- HDF4.2.10 (https://support.hdfgroup.org/ftp/HDF/releases/HDF4.2.10/src)
- hdf5-1.8.16 (https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.16/src)
- netcdf-4.4.0 (ftp://ftp.unidata.ucar.edu/pub/netcdf/)
- jpegsrc.v6b (https://observer.gsfc.nasa.gov/ftp/edhs/hdfeos/previous_releases)
- zlib-1.2.5 (https://observer.gsfc.nasa.gov/ftp/edhs/hdfeos/previous_releases)
- NumPy 1.15 or later Python module (http://www.numpy.org/)
Binary Installation Instructions
--------------------------------
Binary installations that do not require compilation are now available for Python 3.6, IDL, and C library users
on Linux, Mac OS X, and Windows.
Python 2.7 binaries are also available but deprecated on Linux and Mac OS X.
For Python users, the most convenient option is downloading MISR Toolkit directly from PyPI using pip.
- python -m pip install -U pip
- python -m pip install -U wheel numpy
- python -m pip install -U MisrToolkit
A downloadable python binary wheel distribution is also available on the releases page.
For IDL users, a IDL Dynamically Loadable Module (DLM) distribution is available on the releases page.
To use it, download the package, extract it to a convenient location, and then follow the instructions in the README
to set the IDL_DLM_PATH enviornment variable or use IDL's PREF_SET to tell IDL where you extracted the package.
Source Installation Instructions
--------------------------------
Linux and MacOS X
The recommended location for the HDF-EOS/HDF libraries and the MISR Toolkit is /usr/local/hdfeoslibs
and /usr/local/Mtk-1.5.X respectively, because this location provides convenient access for multiple user
accounts. It is not necessary, however, to install in /usr/local. The MISR Toolkit and HDF-EOS can be
installed anywhere. Of course installing in /usr/local requires root or sudo privileges. Use the sudo
commands below if you are a sudoer or simply become root before installing the HDF-EOS/HDF libraries
and before the "make install" step for the MISR Toolkit.
1) Create a working directory
mkdir Mtk_tmp
cd Mtk_tmp
2) Extract Mtk-src-1.5.X.tar.gz
tar xzvf Mtk-src-1.5.X.tar.gz (if not done already)
3) Extract Mtk testdata (substitute Mtk-testdata-1.5.X with your version)
tar xzvf Mtk-testdata-1.5.X.tar.gz
4) Download HDF-EOS/HDF, JPEG and ZLIB libraries
cd Mtk-src-1.5.X
scripts/download_libraries
<Hit "return" for defaults>
5) Install HDF-EOS/HDF, JPEG and ZLIB libraries (using the following script
is necessary because it applies patches which are required for some systems,
like Mac Universal Binaries, Linux and Linux64)
** The next step requires root privileges to install into
/usr/local/hdfeoslibs, otherwise choose another location and disregard sudo
sudo scripts/install_hdf+hdfeos
<Hit "return" for defaults (/usr/local/hdfeoslibs)>
6) Build, test and install Mtk (substitute Mtk-src-1.5.X with your version)
Setup your HDF/HDFEOS environment
for csh:
source <your-step5-path>/bin/hdfeos_env.csh
for bash:
source <your-step5-path>/bin/hdfeos_env.sh
Set MTK_INSTALLDIR environment variable (ex. /usr/local/Mtk-1.5.X)
for csh:
setenv MTK_INSTALLDIR <your-path>/Mtk-1.5.X
for bash:
export MTK_INSTALLDIR=<your-path>/Mtk-1.5.X
Set IDL_DIR environment variable (if applicable)
for csh:
setenv IDL_DIR <path-to-idl>/harris/idl
for bash:
export IDL_DIR=<path-to-idl>/harris/idl
To build, test and install (choose which libraries to build)
Everything - C, command-line utilities, IDL and Python
make
make testall (If you have Mtk testdata installed and would like
to test C, IDL and Python)
** The next step requires root privileges to install into
/usr/local/Mtk-1.5.X, otherwise choose another location
and disregard sudo
sudo MTK_INSTALLDIR=$MTK_INSTALLDIR make install
Or - C library and command-line utilites
make lib
make cmdutil
make test (If you have Mtk testdata installed and would like to
test only C routines)
** The next step requires root privileges to install into
/usr/local/Mtk-1.5.X, otherwise choose another location
and disregard sudo
sudo make install
Or - IDL library
make idl
make testidl (If you have Mtk testdata installed and would like to
test only IDL routines - requires user interaction)
** The next step requires root privileges to install into
/usr/local/Mtk-1.5.X, otherwise choose another location
and disregard sudo
sudo make install
Or - Python library
make python
make testpython (If you have Mtk testdata installed and would like to
test only Python routines)
** The next step requires root privileges to install into
/usr/local/Mtk-1.5.X, otherwise choose another location
and disregard sudo
sudo make install
Other build targets and options
make help (for other build targets)
make clean (to clean everything)
If the build complains about .d files ( This occurs when the HDF-EOS
environment is not set)
scripts/rmdepend.sh (to remove dependency files)
make
7) To use Mtk
The HDF/HDFEOS environment is already set above
Setup your Mtk environment (pick any):
For csh:
source $MTK_INSTALLDIR/bin/Mtk_c_env.csh for C
source $MTK_INSTALLDIR/bin/Mtk_idl_env.csh for IDL
source $MTK_INSTALLDIR/bin/Mtk_python_env.csh for Python (Don't need
to do if installed in site-packages (see step 8))
For bash:
. $MTK_INSTALLDIR/bin/Mtk_c_env.sh for C
. $MTK_INSTALLDIR/bin/Mtk_idl_env.sh for IDL
. $MTK_INSTALLDIR/bin/Mtk_python_env.sh for Python (Don't need to do
if installed in site-packages (see step 8))
For C examples: $MTK_INSTALLDIR/examples/C
For IDL examples: $MTK_INSTALLDIR/examples/idl
For Python examples: $MTK_INSTALLDIR/examples/python
For C command-line utilities source code: Mtk-src-1.5.X/src
For IDL tests source code: Mtk-src-1.5.X/wrappers/idl
8) Optional - You may want to install the MisrToolkit into you Python
site-packages directory
cd Mtk-src-1.5.X/wrappers/python
sudo python setup.py install
setenv LD_LIBRARY_PATH $MTK_INSTALLDIR/lib
9) Optional - After installing the Mtk_tmp directory, it's contents is
not needed, unless for reference and may be removed
cd ../..
rm -rf Mtk_tmp
Windows
See win64/README.txt in the source or binary bundle.
Known Problems
--------------
The IDL routine MTK_FIND_FILELIST() does not work properly.
By default OS X swallows click-events on change of focus.
If IDL test windows on MacOS X 10.14 don't respond to clicks, do this command
"defaults write org.x.x11 wmclickthrough -bool true"
Then, once at a shell prompt, restart X11/XQuartz and retry
"make testidl".
IDL is not compatible with XQuartz versions greater than 2.7.9
If IDL tests return an error of "Error: attempt to add non-widget child "dsm"
to parent "idl" which supports only widgets"" then you can either downgrade
to XQuartz 2.7.9 or follow the procedure described at goo.gl/RvXOXy to add
/opt/X11/lib/flat_namespace to the DYLD_LIBRARY_PATH set by your idl
launcher script (e.g. /Applications/harris/idl87/bin/idl)
About
an API facilitating the access of MISR standard product files
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published