[Tutor] 2.5 to 2.4 problem with Int

John washakie at gmail.com
Thu Sep 13 21:57:26 CEST 2007


for the record:
nx=360
ny=180
nz=1


On 9/13/07, John <washakie at gmail.com> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20070913/02fe19df/attachment-0001.htm 


More information about the Tutor mailing list