Example #1
0
def write3(name, date, alt, lat, colat, lon, X, Y, Z, dX, dY, dZ, \
                  dec, hoz, inc, eff, decs, hozs, incs, effs, itype):
     '''
     Write out the main field and SV values to screen or a file for a grid
     location for a single time
     '''
     if itype == 1:
         alt, lat = iut.geo_to_gg(alt, colat)
         lat = 90-lat
    
     if not name: # Print to screen
        print('\nGeomagnetic field values for: ', str(date[0]) + ', at altitude ' 
            + str(np.round(alt[0], decimals=3)) )
        print('Latitude  Longitude  D(' +degree_sign+')  I(' +degree_sign+')  H(nT)' 
              ' F(nT) X(nT) Y(nT)  Z(nT)     '
              'SV_D(min/yr)  SV_I(min/yr)  SV_H(nT/yr) ' 
              ' SV_F(nT/yr)  SV_X(nT/yr)  SV_Y(nT/yr)  SV_Z(nT/yr) ' )
         #for loop to write to screen ...         
        for i in range(len(lon)):
            print(str(np.round(lat[i], decimals=4)), str(np.round(lon[i], decimals=4)), 
             '{: .3f}'.format(dec[i]),
             '{: .3f}'.format(inc[i]),
             '{: .1f}'.format(hoz[i]), 
             '{: .1f}'.format(eff[i]),
             '{: .1f}'.format(X[i]), 
             '{: .1f}'.format(Y[i]),
             '{: .1f}'.format(Z[i]),
             '{: .2f}'.format(decs[i]), 
             '{: .2f}'.format(incs[i]),
             '{: .1f}'.format(hozs[i]), 
             '{: .1f}'.format(effs[i]),
             '{: .1f}'.format(dX[i]),
             '{: .1f}'.format(dY[i]),
             '{: .1f}'.format(dZ[i]))
     else: # Print to filename 
        with open(name, 'w') as file: 
            file.writelines(['\nGeomagnetic field values for: ', str(date[0]) + ', at altitude ' 
                             + str(np.round(alt[0], decimals=3)) ])
            file.writelines(['Latitude Longitude  D(' +degree_sign+')  I(' +degree_sign+')  H(nT)' 
              ' F(nT) X(nT) Y(nT)  Z(nT)     '
              'SV_D(min/yr)  SV_I(min/yr)  SV_H(nT/yr) ' 
              ' SV_F(nT/yr)  SV_X(nT/yr)  SV_Y(nT)  SV_Z(nT/yr) \n'])
            # Write out in a loop
            for i in range(len(lon)):
                file.writelines([str(np.round(lat[i], decimals=4)), ' ', 
                                 str(np.round(lon[i], decimals=4)), ' ',
                 '{: 6.2f}'.format(dec[i]),
                 '{: 6.2f}'.format(inc[i]),
                 '{: 9.1f}'.format(hoz[i]), 
                 '{: 9.1f}'.format(eff[i]),
                 '{: 9.1f}'.format(X[i]), 
                 '{: 9.1f}'.format(Y[i]),
                 '{: 9.1f}'.format(Z[i]),
                 '{: 5.2f}'.format(decs[i]), 
                 '{: 5.2f}'.format(incs[i]),
                 '{: 7.1f}'.format(hozs[i]), 
                 '{: 7.1f}'.format(effs[i]),
                 '{: 7.1f}'.format(dX[i]),
                 '{: 7.1f}'.format(dY[i]),
                 '{: 7.1f}'.format(dZ[i]), '\n'])
Example #2
0
def write1(name, date, alt, lat, colat, lon, X, Y, Z, dX, dY, dZ, \
                  dec, hoz, inc, eff, decs, hozs, incs, effs, itype):
    '''
    Write out a single lat/long/alt the main field and SV values to screen or a file
    '''
    if itype == 1:
         alt, lat = iut.geo_to_gg(alt, colat)
         lat = 90-lat
    
    if not name: # Print to screen
        print('\nGeomagnetic field values at: ', str(np.round(lat, decimals=4)) 
            + degree_sign  + ' / ' + str(lon) 
            + degree_sign + ', at altitude ' 
            + str(np.round(alt, decimals=3)) + ' for ' + str(date))
        print('Declination (D):', '{: .3f}'.format(dec), degree_sign)
        print('Inclination (I):', '{: .3f}'.format(inc), degree_sign)
        print('Horizontal intensity (H):', '{: .1f}'.format(hoz), 'nT')
        print('Total intensity (F)     :', '{: .1f}'.format(eff), 'nT')
        print('North component (X)     :', '{: .1f}'.format(X), 'nT')
        print('East component (Y)      :', '{: .1f}'.format(Y), 'nT')
        print('Vertical component (Z)  :', '{: .1f}'.format(Z), 'nT')
        print('Declination SV (D):', '{: .2f}'.format(decs), 'arcmin/yr')
        print('Inclination SV (I):', '{: .2f}'.format(incs), 'arcmin/yr')
        print('Horizontal SV (H):', '{: .1f}'.format(hozs), 'nT/yr')
        print('Total SV (F)     :', '{: .1f}'.format(effs), 'nT/yr')
        print('North SV (X)     :', '{: .1f}'.format(dX), 'nT/yr')
        print('East SV (Y)      :', '{: .1f}'.format(dY), 'nT/yr')
        print('Vertical SV (Z)  :', '{: .1f}'.format(dZ), 'nT/yr')
    else: # Print to filename 
        with open(name, 'w') as file: 
            file.writelines(['Geomagnetic field values at: ',  str(np.round(lat, decimals=4)) 
                + degree_sign +' / ' + str(lon) 
                + degree_sign + ', at altitude ' 
                + str(np.round(alt, decimals=3)) +', for ' + str(date) +'\n'])
            file.writelines(['Declination (D):', '{: 5.2f}'.format(dec), degree_sign + '\n'])
            file.writelines(['Inclination (I):', '{: 5.2f}'.format(inc), degree_sign + '\n'])
            file.writelines(['Horizontal intensity (H):', '{: 8.1f}'.format(hoz), 'nT\n'])
            file.writelines(['Total intensity (F)     :', '{: 8.1f}'.format(eff), 'nT\n'])
            file.writelines(['North component (X)     :', '{: 8.1f}'.format(X), 'nT\n'])
            file.writelines(['East component (Y)      :', '{: 8.1f}'.format(Y), 'nT\n'])
            file.writelines(['Vertical component (Z)  :', '{: 8.1f}'.format(Z), 'nT\n'])
            file.writelines(['Declination SV (D) :', '{: 5.2f}'.format(decs), 'arcmin/yr\n'])
            file.writelines(['Inclination SV (I) :', '{: 5.2f}'.format(incs),  'arcmin/yr\n'])
            file.writelines(['Horizontal SV (H)  :', '{: 7.1f}'.format(hozs), 'nT/yr\n'])
            file.writelines(['Total SV (F)       :', '{: 7.1f}'.format(effs), 'nT/yr\n'])
            file.writelines(['North SV (X)       :', '{: 7.1f}'.format(dX), 'nT/yr\n'])
            file.writelines(['East SV (Y)        :', '{: 7.1f}'.format(dY), 'nT/yr\n'])
            file.writelines(['Vertical SV (Z)    :', '{: 7.1f}'.format(dZ), 'nT/yr\n'])