def testInFileUnlimitedDimAlter(self):

        fnm = os.path.join(cdat_info.get_sampledata_path(), "clt.nc")
        f = cdms2.open(fnm)
        s = f("clt")
        f.close()
        cdms2.setNetcdfDeflateFlag(0)
        cdms2.setNetcdfDeflateLevelFlag(0)
        cdms2.setNetcdfShuffleFlag(0)
        cdms2.setNetcdf4Flag(1)
        cdms2.setNetcdfClassicFlag(1)
        f = cdms2.open("nc4.nc", "w")
        f.write(s)
        f.close()

        timesValues = s.getTime()[:]
        f = cdms2.open("nc4.nc", "r+")
        t = f["time"]
        t[:] = t[:] * 100.
        f.close()

        f = cdms2.open("nc4.nc")
        s = f("clt")
        t = s.getTime()
        self.assertEqual(len(t), len(timesValues))
        self.assertTrue(numpy.allclose(t[:], timesValues * 100.))
        os.remove("nc4.nc")
Exemplo n.º 2
0
 def testClassicFlags(self):
     cdms2.setNetcdfClassicFlag(1)
     self.assertEqual(cdms2.getNetcdfClassicFlag(), 1)
     cdms2.setNetcdfClassicFlag(0)
     self.assertEqual(cdms2.getNetcdfClassicFlag(), 0)
Exemplo n.º 3
0
import cdms2
import numpy
import time

# All flags are set to OFF for parallel writing
# ----------------------------------------------

cdms2.setNetcdfClassicFlag(0)
cdms2.setNetcdfShuffleFlag(0)
cdms2.setNetcdfDeflateFlag(0)
cdms2.setNetcdfDeflateLevelFlag(0)
cdms2.setNetcdfUseParallelFlag(1)
sz = cdms2.getMpiSize()
rk = cdms2.getMpiRank()

# Create a 2D array
# -----------------
lat = 181
lon = 361
a=numpy.ma.ones((lat,lon),dtype=numpy.float32)

# Create 1 degree grid of the world
# -----------------------------------
grid=cdms2.grid.createUniformGrid(-90, 181, 1, 0, 361, 1, order="yx")


#pdb.set_trace()
f=cdms2.open("test_mpi_write_2.nc","w")


# Create variables for each node
Exemplo n.º 4
0
                setattr(A, att, atts[att])
        else:
            A = f.getAxis(ax.id)
        axes.append(A)
    return axes


def addVariable(f, id, typecode, axes, attributes, store_bounds=False):
    axes = addAxes(f, axes, store_bounds)
    V = f.createVariable(id, typecode, axes)
    for att in attributes:
        setattr(V, att, attributes[att])


if __name__ == "__main__":
    cdms2.setNetcdfClassicFlag(0)
    cdms2.setNetcdf4Flag(1)
    cdms2.setNetcdfUseNCSwitchModeFlag(0)
    cdms2.setNetcdfShuffleFlag(0)
    cdms2.setNetcdfDeflateFlag(0)
    cdms2.setNetcdfDeflateLevelFlag(0)

    # Create the parser for user input
    parser = argparse.ArgumentParser(
        description='Regrid variables in a file using a weight file')
    parser.add_argument("--input",
                        "-i",
                        "-f",
                        "--file",
                        dest="file",
                        help="input file to process",
Exemplo n.º 5
0
import cdutil as cdu
import MV2 as mv
import numpy as np
from durolib import globalAttWrite,makeCalendar,mkDirNoOSErr
sys.path.append('/work/durack1/Shared/160427_CMIP6_Forcing/')
from input4MIPsFuncs import createPubFiles,jsonWriteFile,washPerms

#%% Kludge for json/encoder warning
#import warnings
##warnings.filterwarnings('ignore', category=DeprecationWarning)
#with warnings.catch_warnings():
#    warnings.filterwarnings('ignore', category=DeprecationWarning)
#    import vcs

#%% Set cdms format criteria
cdm.setNetcdfClassicFlag(0) ; # 1 = amipbc files 437.2MB; amipobs files 437.3MB
cdm.setNetcdfDeflateFlag(1) ; # 1 = amipbc files sic 75.2MB, tos 239.2MB; amipobs files sic 29.3MB, tos 225.9MB

#%% Set version info
activity_id         = 'input4MIPs'
comment             = 'Based on Hurrell SST/sea ice consistency criteria applied to merged HadISST (1870-01 to 1981-10) & NCEP-0I2 (1981-11 to 2018-06)' ; # WILL REQUIRE UPDATING
contact             = '*****@*****.**'
dataVer             = 'PCMDI-AMIP-1-1-5' ; # WILL REQUIRE UPDATING
dataVerSht          = 'v1.1.5' ; # WILL REQUIRE UPDATING
data_structure      = 'grid'
further_info_url    = 'https://pcmdi.llnl.gov/mips/amip/' ; # WILL REQUIRE UPDATING - point to GMD paper when available
institute_id        = 'PCMDI'
institution         = 'Program for Climate Model Diagnosis and Intercomparison, Lawrence Livermore National Laboratory, Livermore, CA 94550, USA'
last_year           = '2018' ; # WILL REQUIRE UPDATING
last_month          = 6 ; # WILL REQUIRE UPDATING
license_txt         = 'AMIP boundary condition data produced by PCMDI is licensed under a Creative Commons Attribution \"Share Alike\" 4.0 International License (http://creativecommons.org/licenses/by/4.0/). The data producers and data providers make no warranty, either express or implied, including but not limited to, warranties of merchantability and fitness for a particular purpose. All liabilities arising from the supply of the information (including any liability arising in negligence) are excluded to the fullest extent permitted by law.'