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")
def testClassicFlags(self): cdms2.setNetcdfClassicFlag(1) self.assertEqual(cdms2.getNetcdfClassicFlag(), 1) cdms2.setNetcdfClassicFlag(0) self.assertEqual(cdms2.getNetcdfClassicFlag(), 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
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",
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.'