In [1]:
from netCDF4 import Dataset
import numpy as np
var = Dataset("/Users/brodzik/projects/PMESDR/pmesdr_regression_data/201409/quick/bgiRSS/e2n/F131-E2N97-061-061.lis_dump1.nc", "r", 'NETCDF4' )

In [9]:
print var.variables.keys()[0]
keys = var.variables.keys()
print len(keys)


bgi_image
1

In [76]:
f1 = Dataset("/Users/brodzik/Desktop/bgi/test_bgi.nc", "r", 'NETCDF4' )
print f1
f2 = Dataset("/Users/brodzik/Desktop/bgi/test_bgi_diffs.nc", "r", 'NETCDF4' )
print f2


<type 'netCDF4.Dataset'>
root group (NETCDF4 data model, file format UNDEFINED):
    dimensions(sizes): rows(3), columns(2)
    variables(dimensions): float64 bgi_image(rows,columns)
    groups: 

<type 'netCDF4.Dataset'>
root group (NETCDF4 data model, file format UNDEFINED):
    dimensions(sizes): rows(3), columns(2)
    variables(dimensions): float64 bgi_image(rows,columns)
    groups: 


In [77]:
d1 = f1.variables["bgi_image"][:]
d2 = f2.variables["bgi_image"][:]
print d1
print d2


[[ 150.  200.]
 [ 201.  325.]
 [ 278.  285.]]
[[ 150.  500.]
 [ 201.  325.]
 [ 278.  285.]]

In [29]:
data = fil.variables["a_image"][:]
print data


[[  525.     700.35]
 [  703.5   1137.5 ]
 [  973.     997.5 ]]

In [30]:
bgifil = Dataset("/Users/brodzik/Desktop/test_bgi_diffs.nc", "w", 'NETCDF4' )
bgifil.createDimension( "rows", 3 )
bgifil.createDimension( "columns", 2 )


Out[30]:
<netCDF4.Dimension at 0x10dcbdbe0>

In [31]:
bgifil.createVariable( "bgi_image", float64, ( "rows", "columns" ) )


Out[31]:
<netCDF4.Variable at 0x10dce5b90>

In [32]:
fil = Dataset("/Users/brodzik/Desktop/test.nc", "r", 'NETCDF4' )
print fil


<type 'netCDF4.Dataset'>
root group (NETCDF4 data model, file format UNDEFINED):
    dimensions(sizes): rows(3), columns(2)
    variables(dimensions): float64 a_image(rows,columns), float64 ave_image(rows,columns)
    groups: 


In [33]:
origdata = fil.variables['a_image'][:]
print origdata


[[ 150.  200.]
 [ 201.  325.]
 [ 278.  285.]]

In [34]:
origdata[0][1] = 500.
print origdata


[[ 150.  500.]
 [ 201.  325.]
 [ 278.  285.]]

In [35]:
bgifil.variables["bgi_image"][:] = origdata

In [36]:
bgifil.close()

In [45]:
otherfil = Dataset("/Users/brodzik/Desktop/test_bgi_diffs.nc", "r", 'NETCDF4' )
print otherfil
bad_bgi = otherfil.variables["bgi_image"][:]
print bad_bgi


<type 'netCDF4.Dataset'>
root group (NETCDF4 data model, file format UNDEFINED):
    dimensions(sizes): rows(3), columns(2)
    variables(dimensions): float64 bgi_image(rows,columns)
    groups: 

[[ 150.  500.]
 [ 201.  325.]
 [ 278.  285.]]

In [41]:
otherfil.close()

In [44]:
otherfil = Dataset("/Users/brodzik/projects/PMESDR/PMESDR_daily_regression_test/python/test_cetb_utilities_data/bgi_data/test_bgi.nc", "r", 'NETCDF4' )
print otherfil
good_bgi = otherfil.variables["bgi_image"][:]
print good_bgi


<type 'netCDF4.Dataset'>
root group (NETCDF4 data model, file format UNDEFINED):
    dimensions(sizes): rows(3), columns(2)
    variables(dimensions): float64 bgi_image(rows,columns)
    groups: 

[[ 150.  200.]
 [ 201.  325.]
 [ 278.  285.]]

In [63]:
print good_bgi
print bad_bgi
diff = bad_bgi - good_bgi
print diff
print diff[ np.where( np.logical_and( np.logical_and( 50. < bad_bgi, bad_bgi < 350. ), 
                                np.logical_and( 50. < good_bgi, good_bgi < 350. ) ) ) ]
print diff[ ( 50. < bad_bgi ) & ( bad_bgi < 350. ) & ( 50. < good_bgi ) & ( good_bgi < 350. ) ]


[[ 150.  200.]
 [ 201.  325.]
 [ 278.  285.]]
[[ 150.  500.]
 [ 201.  325.]
 [ 278.  285.]]
[[   0.  300.]
 [   0.    0.]
 [   0.    0.]]
[ 0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.]

In [75]:
new = bad_bgi.copy()
new[2][0] = -10.
print new
print bad_bgi
diff = new - bad_bgi
print diff
print diff[ ( 50. < bad_bgi ) & ( bad_bgi < 350. ) & ( 50. < new ) & ( new < 350. ) ]
indx = ( 50. < bad_bgi ) & ( bad_bgi < 350. ) & ( 50. < new ) & ( new < 350. )
print indx


[[ 150.  500.]
 [ 201.  325.]
 [ -10.  285.]]
[[ 150.  500.]
 [ 201.  325.]
 [ 278.  285.]]
[[   0.    0.]
 [   0.    0.]
 [-288.    0.]]
[ 0.  0.  0.  0.]
[[ True False]
 [ True  True]
 [False  True]]

In [21]:
fil.createVariable( "ave_image", float64, ( "rows", "columns" ) )


Out[21]:
<netCDF4.Variable at 0x10dce54d0>

In [22]:
fil.close()

In [24]:
fil = Dataset("/Users/brodzik/Desktop/test.nc", "r", 'NETCDF4' )
print fil
keys = fil.variables.keys()
print keys


<type 'netCDF4.Dataset'>
root group (NETCDF4 data model, file format UNDEFINED):
    dimensions(sizes): rows(3), columns(2)
    variables(dimensions): float64 a_image(rows,columns), float64 ave_image(rows,columns)
    groups: 

[u'a_image', u'ave_image']

In [25]:
for key in keys: print key


a_image
ave_image

In [5]:
print len(x)


2

In [73]:
def test(x):
    x = 5
y = 8
test( y )
print y


8

In [ ]: