octant generating curvilinear gird

Discussion about analysis, visualization, and collaboration tools and techniques

Moderators: arango, robertson

Post Reply
Message
Author
shifei
Posts: 30
Joined: Thu Aug 01, 2013 3:11 pm
Location: Ocean University of China

octant generating curvilinear gird

#1 Unread post by shifei »

Hi,
Who has generated curvilinear gird using octant? Do you have a manual or just provide an example?
Thanks a lot.

moghimi
Posts: 18
Joined: Fri Jan 29, 2010 6:17 pm
Contact:

Re: octant generating curvilinear gird

#2 Unread post by moghimi »

Hi,
I have used Octant however I learn it more by looking at the source code and run commands interactively by Ipython. If you have specific question I will be happy to answer/help.

- Saeed.

shifei
Posts: 30
Joined: Thu Aug 01, 2013 3:11 pm
Location: Ocean University of China

Re: octant generating curvilinear gird

#3 Unread post by shifei »

Hi Saeed,
I can make some simple programming using python. Do you have the source code generating curvilinear grid? I can follow and try it interactively by Ipython. I will make learning easier. Thank you.

moghimi
Posts: 18
Joined: Fri Jan 29, 2010 6:17 pm
Contact:

Re: octant generating curvilinear gird

#4 Unread post by moghimi »

Hi,
Here is one of my examples.
I hope it helps. I wrote it for GETM which should work for ROMS too.
Good luck,
Saeed.
Attachments
curv_grid_test.py
(4.45 KiB) Downloaded 542 times

fagundesmo
Posts: 51
Joined: Wed Dec 03, 2014 1:46 am
Location: University of Georgia

Re: octant generating curvilinear gird

#5 Unread post by fagundesmo »

moghimi wrote:Hi,
I have used Octant however I learn it more by looking at the source code and run commands interactively by Ipython. If you have specific question I will be happy to answer/help.

- Saeed.
Hi,

May you help me to install octant correctly in my ubuntu system? It seems I installed nn, csa, gridutils, and gridgen correctly. However, when I tried to make a simple grid it showed that libgridgen.so hasn't been found by python.
I am attaching the link with my question if you want to help me.
viewtopic.php?f=23&t=3651

Thank you in advance

moghimi
Posts: 18
Joined: Fri Jan 29, 2010 6:17 pm
Contact:

Re: octant generating curvilinear gird

#6 Unread post by moghimi »

Hi again,
I guess, you either need to find the location of the library and change the path to this location inside the code (e.g. here octant.__path__[0] and other places based on the error message)and do python setup install again, or make a symbulic link to that library into your usr/local/lib or somewhere that python usually looks into it (PYTHONPATH).

You also may need to add the gridgen directory to your LD_LIBRARY path.

I hope it helps,

Saeed.

fagundesmo
Posts: 51
Joined: Wed Dec 03, 2014 1:46 am
Location: University of Georgia

Re: octant generating curvilinear gird

#7 Unread post by fagundesmo »

moghimi wrote:Hi again,
I guess, you either need to find the location of the library and change the path to this location inside the code (e.g. here octant.__path__[0] and other places based on the error message)and do python setup install again, or make a symbulic link to that library into your usr/local/lib or somewhere that python usually looks into it (PYTHONPATH).

You also may need to add the gridgen directory to your LD_LIBRARY path.

I hope it helps,

Saeed.
Hi again,

thank you for answering me promptly, I will try to do what you mentioned above.

Cheers,

Matheus

fagundesmo
Posts: 51
Joined: Wed Dec 03, 2014 1:46 am
Location: University of Georgia

Re: octant generating curvilinear gird

#8 Unread post by fagundesmo »

Hi moghimi,

I have fixed this issue as you said. However, now I can't import octant.csa. Even though, I installed nn, gridgen, csa, and gridutils in the same path. When I tried to import octant.csa, I got this error:


OSError Traceback (most recent call last)
<ipython-input-6-6b2d83a1f717> in <module>()
----> 1 import octant.csa

/usr/local/lib/python2.7/dist-packages/octant/csa.py in <module>()
7 import octant
8
----> 9 class CSA(object):
10 '''cubic spline approximation for re-gridding 2D data sets
11

/usr/local/lib/python2.7/dist-packages/octant/csa.py in CSA()
60
61 #_csa = np.ctypeslib.load_library('_csa', octant.__path__[0])
---> 62 _csa = np.ctypeslib.load_library('libcsa', '/home/fagundes/libsmodels/Grid/lib')
63
64 _csa.csa_approximatepoints2.restype = ctypes.POINTER(ctypes.c_double)

/usr/lib/python2.7/dist-packages/numpy/ctypeslib.pyc in load_library(libname, loader_path)
134 raise
135 ## if no successful return in the libname_ext loop:
--> 136 raise OSError("no file with expected extension")
137
138 ctypes_load_library = deprecate(load_library, 'ctypes_load_library',

OSError: no file with expected extension

Since It seems an error pretty similar to that one you helped me to solve, my approach was changing its path, it didn't work out, though.

Would you have any idea how to fix it?

Thank you in advance,

Matheus

moghimi
Posts: 18
Joined: Fri Jan 29, 2010 6:17 pm
Contact:

Re: octant generating curvilinear gird

#9 Unread post by moghimi »

Hi,
It seems the 'libcsa' is not in this directory '/home/fagundes/libsmodels/Grid/lib'.
As a test, would you please copy all the libs (.a and .so) files into your ~/.local/lib/ and complie the octant once again.

Saeed.

fagundesmo
Posts: 51
Joined: Wed Dec 03, 2014 1:46 am
Location: University of Georgia

Re: octant generating curvilinear gird

#10 Unread post by fagundesmo »

moghimi wrote:Hi,
It seems the 'libcsa' is not in this directory '/home/fagundes/libsmodels/Grid/lib'.
As a test, would you please copy all the libs (.a and .so) files into your ~/.local/lib/ and complie the octant once again.

Saeed.
Hi, I have compiled octant changing csa's path in csa.py (following these instructions: http://sourceforge.net/p/getm-utils/wiki/octant/), also, re-installed all the libs using default path (/usr/local/) and octant, as well, but it keeps me showing the same error when I try to import octant.csa in ipython. Furthermore, I have installed python-csa just to make sure it wasn't the problem, octant.csa didn't work, though. Do you think I should add a path to my .bashrc? :cry:

Cheers,

Matheus

moghimi
Posts: 18
Joined: Fri Jan 29, 2010 6:17 pm
Contact:

Re: octant generating curvilinear gird

#11 Unread post by moghimi »

Hi again,
Here is what I wrote as note when I tried octant years ago. I hope it helps you.
Saeed.



############################################################################
#saeed Moghimi
#moghimis@gmail.com
#Fri 09 Dec 2011 06:43:12 AM CET


Octant Installation:

A. download:
#Download octant:
svn checkout http://octant.googlecode.com/svn/trunk/ octant-read-only

#Download latest version of gridgen:
svn checkout http://gridgen-c.googlecode.com/svn/gridgen gridgen

#Download latest version of gridutils:
svn checkout http://gridutils-c.googlecode.com/svn/ gridutils

#Download latest version of csa:
svn checkout http://csa-c.googlecode.com/svn/ csa

#Download latest version of nn:
svn checkout http://nn-c.googlecode.com/svn/ nn


B. Compile

Do not forget to set all compiler stuff to gcc,g++,gfortran and ...

rename and replace them with old external subs in Octant

####################
setting for irarum

1. make "nn"
cd nn
./configure -prefix=/home/local/moghimi/src/octant/octant-read-only-dec2011/external
make
make install

2. make "csa"
cd csa
./configure -prefix=/home/local/moghimi/src/octant/octant-read-only-dec2011/external
make
make install

3. make "gridutils"
./configure -prefix=/home/local/moghimi/src/octant/octant-read-only-dec2011/external CPPFLAGS=-I/home/local/moghimi/src/octant/octant-read-only-dec2011/external/include LDFLAGS=-L/home/local/moghimi/src/octant/octant-read-only-dec2011/external/lib
make
make install

4. install newly downloaded gridgen by
./configure -prefix=/home/local/moghimi/src/octant/octant-read-only-dec2011/external CPPFLAGS=-I/home/local/moghimi/src/octant/octant-read-only-dec2011/external/include LDFLAGS=-L/home/local/moghimi/src/octant/octant-read-only-dec2011/external/lib

NOTE:
I changed these lines of makefile after ./configure as -->
CFLAGS = -g -O2 -Wall -I/home/local/moghimi/src/octant/octant-read-only-dec2011/external/include
LDFLAGS = -L/home/local/moghimi/src/octant/octant-read-only-dec2011/external/lib
LIBS = -lgu -lm -L/home/local/moghimi/src/octant/octant-read-only-dec2011/external/lib

make
make lib
make shlib
make install


Change this two things :
#############################################################################
1. in file grid.py:
#self._libgridgen = np.ctypeslib.load_library('_gridgen', octant.__path__[0])

to below according to the place of the library:

self._libgridgen = np.ctypeslib.load_library('libgridgen', '/home/local/moghimi/src/octant/octant-read-only-dec2011/external/gridgen')

2. Also:

line 17 from
#from matplotlib.numerix.mlab import amin ##### saeed
to:
from numpy import amin

##############################################################################
3. in file csa.py:
#_csa = np.ctypeslib.load_library('_csa', octant.__path__[0])

to below according to the place of the library:

_csa = np.ctypeslib.load_library('_csa','/home/local/moghimi/src/octant/octant-read-only-dec2011/build/lib.linux-x86_64-2.7/octant')
##############################################################################
4.
#setup octant
python setup.py build --fcompiler=gfortran
python setup.py install --home=/home/local/moghimi/opt/python/

5. add this line to .bashrc
export PYTHONPATH=${PYTHONPATH}:/home/local/moghimi/opt/python/lib/python/

6. add path to your LD_LIBRARY
For finding libs you need to copy every inc and libs also to grid gen directory and add this line in your bashrs too:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:home/local/moghimi/src/octant/octant-read-only-dec2011/external/gridgen

fagundesmo
Posts: 51
Joined: Wed Dec 03, 2014 1:46 am
Location: University of Georgia

Re: octant generating curvilinear gird

#12 Unread post by fagundesmo »

Hi Saeed,

It works fine now :). However, I have noticed that in its newer version from github, Hetland has removed _csa from the setup and _init_.py files. So at the end, I mixed both versions hahaha, and now I can import octant.csa with no problem at all. Also, I built nn,csa, and so on, using its default paths. On the other hand, octant installation was a little bit trick and as I said I mixed both versions of octant. As a result, when I changed the path in csa.py from octant that I downloaded from github I used the path that was built previously from octant-read-only to get _csa.o in lib*/octant path. After that, I built and installed normally the octant that I downloaded from github. Even though, it sounds a little bit confusing, now everything works smoothly. Thank you a lot for your help.

Cheers,

Matheus

fagundesmo
Posts: 51
Joined: Wed Dec 03, 2014 1:46 am
Location: University of Georgia

Re: octant generating curvilinear gird

#13 Unread post by fagundesmo »

Hi Saaed,

I was wondering whether I could smooth my bathymetry using octant or I had to make by hand. Could you help me out?

Cheers,

Matheus

moghimi
Posts: 18
Joined: Fri Jan 29, 2010 6:17 pm
Contact:

Re: octant generating curvilinear gird

#14 Unread post by moghimi »

Hi,
You can implement your own or use more advanced packages like the one adopted from Matlab. look at pyroms code here:
https://github.com/kshedstrom/pyroms/tr ... y_smoother

Good luck,
Saeed.

fagundesmo
Posts: 51
Joined: Wed Dec 03, 2014 1:46 am
Location: University of Georgia

Re: octant generating curvilinear gird

#15 Unread post by fagundesmo »

Hi,


thank you a lot. Have a nice day.

Matheus

Post Reply