Ejemplo n.º 1
0
    def write_landfrac(self, convert_to_um=False):
        """
        Write out the land fraction.  
        """

        assert(self.landfrac is not None)

        f = nc.Dataset(self.lfrac_filename_nc, 'w', format='NETCDF3_CLASSIC')
        
        # Put in basic header elements lat, lon, time etc. 
        self.put_basic_header(f)
        f.createDimension('ht', 1)

        ht = f.createVariable('ht', 'f8', dimensions=('ht'))
        ht.long_name = 'Height'
        ht.units = 'm'
        ht.positive = 'up'
        lsm = f.createVariable('lsm', 'f8',
                               dimensions=('t', 'ht', 'latitude', 'longitude'))
        lsm.name = 'lsm'
        lsm.title = 'Stash code = 505'
        lsm.title = 'Land fraction in grid box'
        lsm.valid_min = 0.0
        lsm.valid_max = 1.0

        lsm[0, 0, :, :] = self.landfrac[:]
        f.close()

        # Convert to UM format.
        if convert_to_um:
            mkancil = Mkancil()
            ret = mkancil.convert_lfrac()
            assert(ret == 0)
            assert(os.path.exists(self.lfrac_filename_um))