@@ -433,10 +433,10 @@ def SetupBuilder(self):
433433 elif self .__dfsuFileType == DfsuFileType .Dfsu3DSigmaZ :
434434 maxNumberOfLayers = DfsuUtil .FindMaxNumberOfLayers (DfsuUtil .FindTopLayerElements (self .__connectivity ))
435435 dfsBuilder .AddCreateCustomBlock ("MIKE_FM" ,np .array ([ self .__x .size , len (self .__connectivity ), 3 , maxNumberOfLayers , self .__numberOfSigmaLayers ], np .int32 ))
436- elif self .__dfsuFileType in ( DfsuFileType .DfsuSpectral0D , DfsuFileType . DfsuSpectral1D , DfsuFileType . DfsuSpectral2D ) :
437- # TODO should "nlayers" be 0 , 1, 2 for point, line, area?
438- nlayers = 1
439- dfsBuilder .AddCreateCustomBlock ("MIKE_FM" ,np .array ([ self .__x .size , len (self .__connectivity ), nlayers , 0 , len (self .__frequencies ), len (self .__directions )], np .int32 ))
436+ elif self .__dfsuFileType == DfsuFileType .DfsuSpectral1D :
437+ dfsBuilder . AddCreateCustomBlock ( "MIKE_FM" , np . array ([ self . __x . size , len ( self . __connectivity ) , 1 , 0 , len ( self . __frequencies ), len ( self . __directions )], np . int32 ))
438+ elif self . __dfsuFileType == DfsuFileType . DfsuSpectral2D :
439+ dfsBuilder .AddCreateCustomBlock ("MIKE_FM" ,np .array ([ self .__x .size , len (self .__connectivity ), 2 , 0 , len (self .__frequencies ), len (self .__directions )], np .int32 ))
440440 else :
441441 raise Exception ()
442442
@@ -473,14 +473,20 @@ def SetupBuilder(self):
473473 # dfsItem.SetAxis(factory.CreateAxisDummy(len(self.__connectivity)))
474474 #else
475475 # Set axis to have meter unit (not necessary, just to make file exactly equal)
476- # TODO adjust size of spatial axis for spectral data {n_nodes, n_elements} * n_freq * n_dir
477476 if self .__dfsuFileType == DfsuFileType .DfsuSpectral1D :
478477 size = self .__x .size
479478 if self .__frequencies is not None :
480479 size *= len (self .__frequencies )
481480 if self .__directions is not None :
482481 size *= len (self .__directions )
483482
483+ if self .__dfsuFileType == DfsuFileType .DfsuSpectral2D :
484+ size = len (self .__connectivity )
485+ if self .__frequencies is not None :
486+ size *= len (self .__frequencies )
487+ if self .__directions is not None :
488+ size *= len (self .__directions )
489+
484490 dfsItem .SetAxis (factory .CreateAxisEqD1 (eumUnit .eumUmeter , size , 0 , 1 ))
485491 else :
486492 dfsItem .SetAxis (factory .CreateAxisEqD1 (eumUnit .eumUmeter , len (self .__connectivity ), 0 , 1 ))
@@ -550,7 +556,6 @@ def CreateDfsu(self, dfsBuilder, elementType, nodesPerElmt, connectivityArray):
550556 connectivityItem = dfsBuilder .AddCreateStaticItem ("Connectivity" , intCode , connectivityArray )
551557
552558 # Spectral
553-
554559 frequencyItem = dfsBuilder .AddCreateStaticItem ("Frequency" , eumQuantity (eumItem .eumIFrequency , eumUnit .eumUhertz ), self .__frequencies ) if self .__frequencies is not None else None
555560
556561 # TODO unit
0 commit comments