odf_fcns.py 3.67 KB
########################################################
# Defintion des fonctions utilisees par odf2txt.py
#
# James Caveen : juillet 2006
#
# Fonctions ecrites a partir du programme odf2txt de C. Lafleur (IML)
########################################################
import math

#------------------------------------------------
# Calcul de la profondeur (metres) a partir  de la pression (db)
#------------------------------------------------

def pres2depth(pin,lat):
      '''Calculer la profondeur a partir de la pression pour une latitude
         donnee.
         Parametres:
                pin : pression a convertir (db)
                lat : latitude a utiliser pour le calcul (degres)'''
                
      c = [9.72659e0, -2.2512e-5, 2.279e-10, -1.82e-15]
      
      gammap = 2.184e-6 

      p = pin

      slat = math.sin( lat/57.29578 )
      slat2 = slat*slat

      g = 9.780318*( 1. + 5.2788e-3*slat2 + 2.36e-5*slat2*slat2)

      tmp1 = ( ( ( c[3]  *p + c[2] )*p + c[1] )*p + c[0] )*p

      tmp2 = g + .5*gammap*p

      return tmp1/tmp2


#------------------------------------------------
# Calcul de la pression (db)  a partir de la profondeur (metres) 
#------------------------------------------------


def depth2pres(din,lat):
      '''Calculer la pression a partir de la profondeur pour une
         latitude donnee.
         Parametres:
               din : profondeur a convertir en pression (metres)
               lat : latitude a utiliser pour le calcul (degres'''
 
      c = [5.92e-3, 5.25e-3, 8.84e-6, 4.42e-6]
      slat = math.sin( lat/57.29578 )
      slat2 = slat*slat
      c1 = c[0]  + slat2*c[1]
      return ((1-c1)-math.sqrt(((1-c1)**2) - (c[2]*din)))/c[3]



def usage():
      '''Aide pour le module odf2csv'''

      print "Usage: "
      print "odf2csv -i ficin -o ficout [-m interval]  [-d] [-e ]"
      print " ou:"
      print "odf2csv --input ficin --output ficout [--mean interval] [--error] [--doubtfull]"
      print ""
      print "ficin : fichier entree (input file)"
      print "ficout: fichier sortie (output file"
      print "interval : intervale de profondeurs pour donnees moyennees"
      print "             (depth interval for mean data)"
      print "-d (--doubtfull) :  eliminer donnees douteuses (discard data flaged as doubtfull)"
      print "-e (--error) :  eliminer donnees erronnees (discard data flaged as erroneous)"

  


def usagem21():
      '''Aide pour le module odf2csvm21
         (odf2csv many to one)
         i.e., un fichier csv pour tous les fichiers odf'''

      print "Usage: "
      print "odf2csvm21 -o ficout [-m interval]  [-d] [-e ]"
      print " ou:"
      print "odf2csvm21 --output ficout [--mean interval] [--error] [--doubtfull]"
      print ""
      print "ficout: fichier sortie (output file"
      print "interval : intervale de profondeurs pour donnees moyennees"
      print "             (depth interval for mean data)"
      print "-d (--doubtfull) :  eliminer donnees douteuses (discard data flaged as doubtfull)"
      print "-e (--error) :  eliminer donnees erronnees (discard data flaged as erroneous)"

  

def usage121():
      '''Aide pour le module odf2csv121
         (odf2csv 1 to 1)
         i.e., un fichier csv par fichier odf'''

      print "Usage: "
      print "odf2csv121 [-m interval]  [-d] [-e ]"
      print " ou:"
      print "odf2csv121 [--mean interval] [--error] [--doubtfull]"
      print ""
      print "interval : intervale de profondeurs pour donnees moyennees"
      print "             (depth interval for mean data)"
      print "-d (--doubtfull) :  eliminer donnees douteuses (discard data flaged as doubtfull)"
      print "-e (--error) :  eliminer donnees erronnees (discard data flaged as erroneous)"