Subject: Marine Geospatial Ecology Tools (MGET) help
Text archives
From: | "Jason Roberts" <> |
---|---|
To: | "'Marco CLERICI'" <> |
Cc: | <>, <> |
Subject: | [mget-help] RE: Installation under Linux (Ubuntu) |
Date: | Fri, 29 Oct 2010 07:12:29 -0400 |
Dear Marco, While most of GeoEco is platform-independent, certain parts are
platform-dependent and have only been implemented for 32-bit Windows. In
particular, the setup script (setup.py) is mainly designed to produce Windows
binary installation packages (using distutils) and will probably require a lot
of changes to get working on another platform. We would like to address this
eventually but have not had the resources to do so yet. If you are interested specifically in the front-detection algorithm
and have some skill with Python and C++, it would probably not be too difficult
to get it working on another platform. The main part of the algorithm is
implemented in platform-independent C++ extension module, FrontsUtils.cpp.
This module includes only python.h and numpy/arrayobject.h. The functions that
it exports are called by the DetectEdgesInSingleImage() function in Fronts.py.
That function is designed to run the algorithm on a numpy array representing an
SST image; the values must be int8, uint8, int16, or uint16. It might be difficult to get the entire Fronts.py working on another
platform because it imports other GeoEco modules. Instead, assuming you have
some experience writing Python packages, I would recommend extracting the
DetectEdgesInSingleImage() function to your own Python file, and then stripping
out or replacing code that is specific to those other GeoEco modules. For
example, there are a lot of calls to GeoEco’s Logger class from the
GeoEco.Logger module. Just remove these entirely or replace these with calls to
Python’s built-in logging module. In those calls to the Logger, there is
also a function called _ which is used for localization of the messages. If you
did not remove the logging messages entirely, you would need to remove the _
function or define it to just return whatever was passed into it. If trying to get DetectEdgesInSingleImage() working does not
appeal to you, you could also just use it as an example—it is documented
well—and write your own Python code from scratch. That way, you would
only need to compile FrontsUtils.cpp as an extension module and everything else
would be your own code. Good luck, and feel free to contact me with additional
questions. Best regards, Jason From: Marco CLERICI
[mailto:] Dear MGET Team, |