Calculate Field in Mosaic dataset

Discussion created by eltopo on Nov 13, 2012

Create a mosaic dataset, extracted rasters from a netCDF file.

Add time to mosaic for use time slider, but are over written and applies it to last me all raster that form the mosaic, where each raster really should have its own time.

ie get the mosaic with time the raster last, for all raster mosaic. As long I can assign the time for each raster using calculate field?


import arcpy
import glob, os
import time
from time import localtime, strftime

#*********** PRINCIPALES VARIABLES *************
prefijo = "sde.SDE."
Nommosaico = "mostest10"
variable = "pslv"

outLoc = "Database Connections/Coneccion local SDE.sde/"
inNetCDF = "C:/IIE_Datos/Prediccion/Ejemplomosaico/MMOUT_DOMAIN1.nc"

# Process: Create Mosaic Dataset
arcpy.CreateMosaicDataset_management(outLoc, Nommosaico, "PROJCS['Lambert_Conformal_Conic',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Lambert_Conformal_Conic'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',-27.0],PARAMETER['Central_Meridian',-124.17],PARAMETER['Standard_Parallel_1',0.0],PARAMETER['Standard_Parallel_2',0.0],PARAMETER['Scale_Factor',1.0],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Kilometer',1000.0]];-20037.7 -30225.3 149134210447.956;1 1;1 1;0.000001;2;2;IsHighPrecision", "", "")

# Process: Add Field
arcpy.AddField_management(outLoc + Nommosaico, "tiempo", "DATE", "", "", "", "T", "NULLABLE", "NON_REQUIRED", "")            

nc_FP = arcpy.NetCDFFileProperties(inNetCDF)
nc_Dim = nc_FP.getDimensions()

test = outLoc + '/*'
r = glob.glob(test)
for i in r:

for dimension in nc_Dim:

    top = nc_FP.getDimensionSize(dimension)

    for i in range(0, top):

        if dimension == "time":

            dimension_values = nc_FP.getDimensionValue(dimension, i)
            daat = "time '"+str(dimension_values)+ "'"
            print daat
            #nowFile = str(dimension_values)
            nowFile = str(i)
            testt = dimension_values.replace("/","").replace(":","").replace(".","").replace("'","").replace(' ','')
            print testt
            rast = "time" + nowFile
            #print rast
            # this will convert the FIRST time step in your netCDF file to a raster layer
            arcpy.MakeNetCDFRasterLayer_md(inNetCDF, variable, "lon", "lat", testt, "", daat, "BY_VALUE")
            arcpy.CopyRaster_management(testt, outLoc + rast, "", "", "-3,402823e+038", "NONE", "NONE", "", "NONE", "NONE")
            # Local variables:
            Build_Raster_Pyramids = "true"
            Calculate_Statistics = "true"

            # Process: Add Rasters To Mosaic Dataset
            arcpy.AddRastersToMosaicDataset_management(outLoc + Nommosaico, "Raster Dataset", outLoc + rast, "UPDATE_CELL_SIZES", "NO_BOUNDARY", "NO_OVERVIEWS", "", "0", "1500", "", "", "SUBFOLDERS", "ALLOW_DUPLICATES", Build_Raster_Pyramids, Calculate_Statistics, "NO_THUMBNAILS", "")

            fech = str(dimension_values)
            vv = time.strftime(fech)
            print vv
            # Process: Calculate Field
            arcpy.CalculateField_management(outLoc + Nommosaico, "tiempo", 'vv', "PYTHON_9.3", "")