Solved

Adjusting NetCDF timesteps

  • 27 July 2021
  • 4 replies
  • 25 views

Badge +5

Hi, I have a NetCDF file, exported from flood modelling software, that has the timesteps stored as seconds since the flood event started. I am wanting to read and use a timeslider in ArcGIS, but it seems that I require a valid StdTime format for the timesteps. In FME I am attempting to add a 'fake' date on to the start of the seconds value and convert the timestep format to make this work.

The timestep is located in a matrix(?), i.e. as netcdf{}.coordinate_variable{} Anyway I think I have to explode the netcdf list so I can add on the date to the coordinate_variable list. This is fortunately always {0}. After changing this value I then rebuild the list and join it back to the original features (after removing the list attribute from the original feature).

However I am getting the following error when trying to write to the output NetCDF file.

NetCDF writer: Multiple bands have the same permutation of dimension values. Please ensure tuple of values specified in the netcdf_band{}.coordinate_variable{} list attribute is unique

 

FME_NetCDF_FlowEverything seems to be going well until the writer. If I disable the writer and inspect the features just before being written, they seem to look exactly how I want them.

The original feature

FME_NetCDF_OriginalFeaturethe revised feature

FME_NetCDF_UpdatedFeatureThe error message seems to indicate it might be the way I am sticking the list back together, but the result looks good in the inspector.

I definitaly note that the Format Attributes definition for netcdf_band{}.coordinate_variable{} is set as a double. I presume I really want to write into a char field here. But can you change this?

Having said that, the error message doesn't really indicate it is a data type issue i don't think.

Has anyone got any ideas on this?

I've attached the current workspace. The input dataset is very large, but could potentially transfer it if someone was interested.

I'm using FME 2020.1.3.0

 

Thanks

Keith

icon

Best answer by keithhastings 28 July 2021, 01:40

View original

4 replies

Userlevel 5
Badge +29

Could you set the date time as an epoch? Could be that the output format doesn't support strings?

Badge +5

Could you set the date time as an epoch? Could be that the output format doesn't support strings?

I don't think so Hamish. ESRI seem very specific that it requires the date format to be in StdTime, i.e %Y-%m-%dT%H:%M:%S

Badge +5

On further testing I am now very confident that the issue is the output data type of the netcdf_band{}.coordinate_variable{}. I have run the same workspace, excluding the date conversion, but still doing the list explode and rebuild, and this writes the NetCDF file successfully.

Is there any way to adjust the data types of these Format Attributes?

Badge +5

OK, I was barking up the wrong tree a bit here. The netcdf_band{}.coordinate_variable{} must always stay as a number, but the trick with ESRI being able to read the time steps correctly is in being able to understand what these numbers mean. This is set with the netcdf_coordinate_variable{0}.units value.

Previously this was just set as 's', but I have now altered this to be 'seconds since 2021-07-28T00:00:00' and ArcGIS Pro now happily shows this as time aware data.

Reply