def ModifyDfs2ItemAxis(filename): file = DfsFileFactory.Dfs2FileOpenEdit(filename) axisEqD2 = (file.SpatialAxis) axisEqD2.X0 = 55 axisEqD2.Dx = 905 axisEqD2.Y0 = -55 axisEqD2.Dy = 915 file.Close()
def ModifyDfs2ItemInfo(filename): # Open the file for editing file = DfsFileFactory.Dfs2FileOpenEdit(filename) # Original name is "Landuse" (7 characters), "GroundUse" is truncated to "GroundU" file.ItemInfo[0].Name = "GroundUse" # Provide a new quantity (updating the item and unit of the quantity directly does not work!) file.ItemInfo[0].Quantity = eumQuantity(eumItem.eumIAreaFraction, eumUnit.eumUPerCent) # done file.Close()
def ModifyDfs2FileData(filename): # Open the file for editing file = DfsFileFactory.Dfs2FileOpenEdit(filename) # Load and modify data from the first item and timestep data2D = file.ReadItemTimeStepNext(reshape=True) data2D.Data[21, 61] = 7 data2D.Data[21, 62] = 6 data2D.Data[21, 63] = 5 data2D.Data[21, 64] = 4 data2D.Data[21, 65] = 3 # Write modified data back file.WriteItemTimeStep(1, 0, data2D.Time, data2D.Data) # done file.Close()
def ModifyDfs2Bathymetry(bathyFilename): # Open file dfs2 = DfsFileFactory.Dfs2FileOpenEdit(bathyFilename) # Second custom block (index 1) contains the M21_MISC values, # where the 4th (index 3) is the land value landValue = dfs2.FileInfo.CustomBlocks[1][3] # Read bathymetry data bathyData = dfs2.ReadItemTimeStepNext() # Modify bathymetry data for i in range(bathyData.Data.size): if (bathyData.Data[i] != landValue): bathyData.Data[i] -= 5.61 # Write back bathymetry data dfs2.WriteItemTimeStep(1, 0, 0, bathyData.Data) dfs2.Close()