I have no clue; anyone else?

Maybe you should try the numpy list.

Kent

John wrote:
> for the record:
> nx=360
> ny=180
> nz=1
> 
>  
> On 9/13/07, *John* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:
> 
> 
>     In all it's glory: I'm just a bit embarrassed because I'm sure it's
>     poor coding:
>      
>      
> 
>     def gridarea(H):
>      """ returns an array of area corresponding to each nx,ny,nz
>      %===========================================
>      %
>      %-------------------------------------------
>      % input
>      %   - H  : Header dict object with nx, ny, nz
>      %
>      % output
>      %   - Numpy array area corresponding to nx,ny,nz
>      %-------------------------------------------
>      % 
>      %-------------------------------------------
>      % last changes: ww, 2007
>      %===========================================
>      """
>      import math
>      import numpy as N
>      
>      pih=math.pi/180.
>      r_earth=6.371e6
>      cosfunc = lambda y : math.cos(y*pih)*r_earth
>      nz=H['nz']
>      nx=H['nx']
>      ny=H['ny']
>      outlat0=H['outlat0']
>      dyout=H['dyout']
>      dxout=H['dxout']
>      area=N.zeros((nx,ny)) #creates numpy array
>      
>      for iy in range(ny):
>       ylata=outlat0+(float(iy)+0.5)*dyout
>       ylatp=ylata+0.5*dyout
>       ylatm=ylata-0.5*dyout
>       if (ylatm<0 and ylatp>0): hzone=dyout*r_earth*pih
>       else:
>        cosfact=cosfunc(ylata)
>        cosfactp=cosfunc(ylatp)
>        cosfactm=cosfunc(ylatm)
>        if cosfactp<cosfactm:
>     hzone=math.sqrt(r_earth**2-cosfactp**2)-math.sqrt(r_earth**2-cosfactm**2)
>        else:
>     hzone=math.sqrt(r_earth**2-cosfactm**2)-math.sqrt(r_earth**2-cosfactp**2)
> 
> 
>       gridarea=2.*math.pi*r_earth*hzone*dxout/360.
>       for ix in range(nx):
>        print nx, ix, iy
>        area[ix,iy]=gridarea 
>      
>      return area #returns numpy array of area
> 
>      
> 
>     Here's the traceback:
> 
>     ...
> 
>     360 357 9
>     360 358 9
>     360 359 9
>     360 0 10
>     OverflowError: long int too large to convert to int
>     Traceback:
>       File "<string>", line 1, in ?
>       File "c:\07\Programming\Python\mod_fp\getfp.py", line 11, in ?
>         H,fail=readheader(pathname,1,0)
>       File "c:\07\Programming\Python\mod_fp\mod_fp.py", line 170, in
>     readheader
>         H['area'] = gridarea(H)
>       File "c:\07\Programming\Python\mod_fp\mod_fp.py", line 332, in
>     gridarea
>         area[ix,iy]=gridarea
> 
> 
> 
> 
> -- 
> Configuration
> ``````````````````````````
> Plone 2.5.3-final,
> CMF-1.6.4,
> Zope (Zope 2.9.7-final, python 2.4.4, linux2),
> Five 1.4.1,
> Python 2.4.4 (#1, Jul 3 2007, 22:58:17) [GCC 4.1.1 20070105 (Red Hat 
> 4.1.1-51)],
> PIL 1.1.6

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to