Arc Hydro Errors on Build Walls & Fill DEM

8394
14
Jump to solution
05-18-2015 07:11 AM
Labels (1)
LangdonSanders2
Occasional Contributor

Hello Everyone,

I am encountering an error while using the Arc Hydro tutorial and on my own data.

Upon running the Build Walls tool, I receive the following error which appears to be failing on converting a string to a double somewhere in the VB code for Arc Hydro. I have turned off background geoprocessing and followed the recommended steps in the Arc Hydro Problem Solvers thread.

Any help would be appreciated.

Thank you.

The CreateFeatureClass command works. Then it runs

PolygonToRaster which also succeeds.  The result looks like it creates a raster of the flowlines.

Then it fails on Build external walls.

Executing: BuildWalls StrSlpDEM 500 2 2 C:\GIS\HydroModel\ArcHydroTutorial\Layers\walldem ProjectArea ProjectArea NHDFlowline
Start Time: Mon May 18 10:05:57 2015
Building internal walls
Executing: CreateFeatureclass C:\Users\lmsanders\AppData\Local\Temp\arcA42E\AH20150518100557\AHTemp.gdb tmp2486 POLYGON # DISABLED DISABLED "PROJCS['NAD_1983_Albers',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Albers'],PARAMETER['False_Easting',0.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-96.0],PARAMETER['Standard_Parallel_1',29.5],PARAMETER['Standard_Parallel_2',45.5],PARAMETER['Latitude_Of_Origin',23.0],UNIT['Meter',1.0]];-16901100 -6972200 10000;-100000 10000;-100000 10000;0.001;0.001;0.001;IsHighPrecision" # 0 0 0
Start Time: Mon May 18 10:05:58 2015
Succeeded at Mon May 18 10:05:58 2015 (Elapsed Time: 0.35 seconds)
Executing: PolygonToRaster GPL0 OBJECTID C:\Users\lmsanders\AppData\Local\Temp\arcA42E\AH20150518100557\wtemp CELL_CENTER NONE 30
Start Time: Mon May 18 10:06:00 2015
Succeeded at Mon May 18 10:06:01 2015 (Elapsed Time: 0.88 seconds)
Building external walls
System.InvalidCastException: Conversion from string "" to type 'Double' is not valid. ---> System.FormatException: Input string was not in a correct format.
   at Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value, NumberFormatInfo NumberFormat)
   at Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat)
   --- End of inner exception stack trace ---
   at Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat)
   at Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value)
   at ESRI.APWR.ApHydro.ArcHydroOp.BuildWalls(ApLayers apLayers, Double innerWallHeight, Double wallBuffer, Double breachLineBuffer, ITrackCancel& trackcancel, IGPMessages& messages, String& exMessage) in C:\Builds\HydroSolutions\10.2_ArcHydro\Sources\ArcHydroTools\src\ApHydro\ArcHydroOp.vb:line 13818
Failed to execute (BuildWalls).
Failed at Mon May 18 10:06:03 2015 (Elapsed Time: 6.42 seconds)

Message was edited by: Langdon Sanders - Updated title as thread contains fill dem issues as well

0 Kudos
1 Solution

Accepted Solutions
MarkBoucher
Occasional Contributor III

I worked back from error line 34 where …\fillGeo does not exist. It looks like fillGeo is created from a process done on leveldem.

First of all I'm not an expert at sleuthing the error messages. However, I looked through what you posted and see a few things. There is a layer with the name c:\hydro\raster\leveldem. It appears in the Process Log and in the first error message on line 27. The rest of the errors cascade from there. If there is no leveldem then there would be an error reading it. If it were the wrong type (integer instead of real or vice versa) you might get an error.

In the Process Log there are temp files (probably rasters) with names tmpsink, nullSinkGeo, and notnullSink. I also see the “ISNULL” in the Process Log. This makes me think the fill sinks command checks for null values in the walled/burned DEM. This might be the leveldem, but you’d have to check your process. This makes sense because you'd think that trying to fill a cell with a null value might cause some equations to choke. Maybe there are cells in one of your DEM’s that have bad or missing data.

The line 35 “Failed to execute (Con)” message supports this. The Con() function is a conditional function like an if-then statement. I’m not sure if this function is data type sensitive (Integer, Real, alpha). That is, I’m not sure if it would produce an error if it was checking the condition for a Real value when the value is an Integer. I don’t think a raster can have an alpha value unless the value “Null” would be an “alpha” type (which I don’t think it is). The ISNULL() function is used with the Con() function often as in Con(ISNULL(leveldem), …,…). All of this could lead to an incompatible raster type for you DEM. Most DEM’s are real but DEMs can be integer. Could also be that the "Failed to execute (Con)" error occured fillGeo does not exist (see line 34).

Anyway, those are my rambling thoughts on this.

View solution in original post

14 Replies
LangdonSanders2
Occasional Contributor

This occurs on my own sample data as well. 

0 Kudos
SeanKearney
New Contributor II

I am having the same issue on some of my own data as well (see screenshot)

MarkBoucher
Occasional Contributor III

Langdon,

It looks like your innerwalls portion is working but your outerwalls portion is failing. You could try copying your inner walls data to another feature class, delete all the data, copy your outerwalls to the new feature class and use the new feature class for the outerwalls. If this fails, the something else is wrong besides data type or fields.

I always keep this data (agreestream, innerwalls, outerwalls) in a geodatabase. Geodatabase datasets are more "stable" than feature classes.

Mark

LangdonSanders2
Occasional Contributor

Hello Mark,

Thank you for your reply.  I am having the usual frustrations with Arc Hydro and have been following the Problem Solvers thread closely.  I have been reading a number of your other responses in this community.  I have forgone building walls altogether and am now using a merged DEM that exceeds my area of interest.  I am avoiding the build walls errors at least for now. 

I was able to run Level DEM using a lake polygon feature class. I now wish to run Fill Sinks.   Fill Sinks fails on the final step "Fill . . ." due to the following does not exist error:

...

Failed to execute. Parameters are not valid.

ERROR 000865: Input true raster or constant value: C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527134547\fillGeo does not exist.

Failed to execute (Con).

And then it threw the usual HRESULT .... Com component error.

Here are the logs from that temp folder: C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527141646

Process Log

201505271417   0    28     0lmsanders C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527141646\nullSinkGeo = ISNULL(C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527141646\tmpsink)
201505271418   0    28     0lmsanders C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527141646\notnullSink = (  NOT  C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527141646\nullSinkGeo)
201505271421   2   156     0lmsanders C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527141646\MaskGeo = SETNULL(C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527141646\notnullSink, C:\hydro\raster\leveldem)
201505271422   0     0     0lmsanders C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527141646\fillGeo = FILLSINK(C:\hydro\raster\leveldem,  #)

Full Messages on Fill Sinks (error at line 34 & 36)

Executing: FillSinks C:\hydro\raster\leveldem C:\hydro\Layers\Fil # C:\hydro\data.gdb\SinkPolygon ISSINK_NO
Start Time: Wed May 27 13:45:47 2015
Executing: MakeFeatureLayer DerangedPoly SinkPolygon_issink # # "OBJECTID OBJECTID VISIBLE NONE;Shape Shape VISIBLE NONE;gridcode gridcode VISIBLE NONE;SinkID SinkID VISIBLE NONE;GridID GridID VISIBLE NONE;IsSink IsSink VISIBLE NONE;HYDROID HYDROID VISIBLE NONE;FeatureID FeatureID VISIBLE NONE;LevelElev LevelElev VISIBLE NONE;Shape_Length Shape_Length VISIBLE NONE;Shape_Area Shape_Area VISIBLE NONE"
Start Time: Wed May 27 13:45:48 2015
Succeeded at Wed May 27 13:45:48 2015 (Elapsed Time: 0.02 seconds)
Executing: GetCount SinkPolygon_issink
Start Time: Wed May 27 13:45:48 2015
Row Count = 5
Succeeded at Wed May 27 13:45:48 2015 (Elapsed Time: 0.01 seconds)
Executing: PolygonToRaster SinkPolygon_issink OBJECTID C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527134547\tmpsink CELL_CENTER NONE 4
Start Time: Wed May 27 13:45:48 2015
Succeeded at Wed May 27 13:46:28 2015 (Elapsed Time: 40.55 seconds)
Executing: Delete SinkPolygon_issink #
Start Time: Wed May 27 13:46:28 2015
Succeeded at Wed May 27 13:46:28 2015 (Elapsed Time: 0.01 seconds)
Executing: IsNull C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527134547\tmpsink C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527134547\nullSinkGeo
Start Time: Wed May 27 13:46:28 2015
Succeeded at Wed May 27 13:46:52 2015 (Elapsed Time: 23.43 seconds)
Executing: BooleanNot C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527134547\nullSinkGeo C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527134547\notnullSink
Start Time: Wed May 27 13:47:20 2015
Succeeded at Wed May 27 13:47:43 2015 (Elapsed Time: 23.47 seconds)
Executing: SetNull C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527134547\notnullSink C:\hydro\raster\leveldem C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527134547\MaskGeo #
Start Time: Wed May 27 13:48:12 2015
Succeeded at Wed May 27 13:50:40 2015 (Elapsed Time: 2 minutes 28 seconds)
Executing: Fill C:\hydro\raster\leveldem C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527134547\fillGeo #
Start Time: Wed May 27 13:51:10 2015
ERROR 010213: Error in reading raster c:\hydro\raster\leveldem.
ERROR 010067: Error in executing grid expression.
Failed to execute (Fill).
Failed at Wed May 27 13:51:10 2015 (Elapsed Time: 0.26 seconds)
Executing: Con C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527134547\nullSinkGeo C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527134547\fillGeo C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527134547\hydroDEMGeo C:\hydro\raster\leveldem #
Start Time: Wed May 27 13:51:11 2015
Failed to execute. Parameters are not valid.
ERROR 000865: Input true raster or constant value: C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527134547\fillGeo does not exist.
Failed to execute (Con).
Failed at Wed May 27 13:51:11 2015 (Elapsed Time: 0.07 seconds)
System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.
   at ESRI.ArcGIS.Geoprocessing.GeoProcessorClass.Execute(String Name, IVariantArray ipValues, ITrackCancel pTrackCancel)
   at ESRI.APWR.ApHydro.ArcHydroOp.FillSinks(ApLayers& aplayers, Boolean useIsSink, Boolean fillAll, Double fillLimit, ITrackCancel trackCancel, IGPMessages messages, String& exMessage) in C:\Builds\HydroSolutions\10.2_ArcHydro\Sources\ArcHydroTools\src\ApHydro\ArcHydroOp.vb:line 64861
Failed to execute (FillSinks).
Failed at Wed May 27 13:51:11 2015 (Elapsed Time: 5 minutes 23 seconds)

I am trying just about any troubleshooting I can find or think of.

I am attempting now to just fill all sinks without any deranged polygons to see if that works. 

Thank you for your help.

0 Kudos
LangdonSanders2
Occasional Contributor

Update

I ran the Fill Sinks tool without any deranged real sinks (leaving the parameter blank) so that it would fill all sinks in the DEM.  The tool succeeded without a hiccup.  This leads me to believe it is something to do with the polygon for my sinks or the extra processes involved when enforcing real sinks?  These are stored in a file geodatabase but not in a feature dataset.

0 Kudos
MarkBoucher
Occasional Contributor III

I've used outerwalls before (v 9.3?) and had no problems. More recently I extract the rawdem out of a countywide DEM by mask around the watershed and leave it up to Arc Hydro to set the ridge boundary. The only time I really had to build an outerwall was back with I used 9.3 and the creek in the flatlands ran right next to the boundary. It would "spill" out of the boundary w/o a wall there.

MarkBoucher
Occasional Contributor III

I worked back from error line 34 where …\fillGeo does not exist. It looks like fillGeo is created from a process done on leveldem.

First of all I'm not an expert at sleuthing the error messages. However, I looked through what you posted and see a few things. There is a layer with the name c:\hydro\raster\leveldem. It appears in the Process Log and in the first error message on line 27. The rest of the errors cascade from there. If there is no leveldem then there would be an error reading it. If it were the wrong type (integer instead of real or vice versa) you might get an error.

In the Process Log there are temp files (probably rasters) with names tmpsink, nullSinkGeo, and notnullSink. I also see the “ISNULL” in the Process Log. This makes me think the fill sinks command checks for null values in the walled/burned DEM. This might be the leveldem, but you’d have to check your process. This makes sense because you'd think that trying to fill a cell with a null value might cause some equations to choke. Maybe there are cells in one of your DEM’s that have bad or missing data.

The line 35 “Failed to execute (Con)” message supports this. The Con() function is a conditional function like an if-then statement. I’m not sure if this function is data type sensitive (Integer, Real, alpha). That is, I’m not sure if it would produce an error if it was checking the condition for a Real value when the value is an Integer. I don’t think a raster can have an alpha value unless the value “Null” would be an “alpha” type (which I don’t think it is). The ISNULL() function is used with the Con() function often as in Con(ISNULL(leveldem), …,…). All of this could lead to an incompatible raster type for you DEM. Most DEM’s are real but DEMs can be integer. Could also be that the "Failed to execute (Con)" error occured fillGeo does not exist (see line 34).

Anyway, those are my rambling thoughts on this.

LangdonSanders2
Occasional Contributor

Thank you for your time and thoughts on this issue.  Thanks for clarification on the Con() function.  My raster DEM is an signed integer Esri GRID format with NoData value set to 32767 under the raster properties.  There are areas with NoData as classified below in red.  I thought, according to the help, that integer GRIDs were the desired format.  I will try to extract the area to minimize NoData values.  I think the fillGeo does not exist because the previous step that would create it fails. 

The current DEM is about 660 sq miles at 4 ft pixel sizes.  Perhaps this is too large and I should tile the processing or reduce the resolution.

DEM_novalue_screen.png

0 Kudos
LangdonSanders2
Occasional Contributor

Hello Mark,

I re-extracted my DEM trying to avoid NoData values and resampled it to a coarser resolution (10 ft vs 4ft). I then ran Fill Sinks with my deranged polygon feature class which worked this time.   You clued me in that the source DEM was probably the issue, though I am not sure if it was the raster type (signed, unsigned, integer vs real), size, or it simply my raster was corrupt.

The previous failure:

1) The failed Con() function had a message:

Failed to execute. Parameters are not valid.

ERROR 000865: Input true raster or constant value:

C:\Users\lmsanders\AppData\Local\Temp\arc8352\AH20150527141646\fillGeo does not exist.

Failed to execute (Con).

Description

The specified input to the argument does not exist.

Solution

Make sure the input exists at the identified location.

2) Step that would have created the fillGeo

Had the following errors:

ERROR 010213: Error in reading raster c:\hydro\raster\leveldem.

Description

There was an error encountered when trying to read the specified grid. Problems accessing a grid are most commonly the result of missing required component files in the grid's folder. Consult the documentation to see the required files for the ESRI Grid format. If all of the required components are present, it is also possible that the files that contain the binary raster data are internally corrupted.

Solution

  • Determine whether the grid is valid first by trying to display it.
  • If it does not show properly, check to see that all the required component files are present in the grid's folder.If there is no sta.adf file in the grid directory, try creating one with the Calculate Statistics tool.
  • If its data files seem to have been corrupted, you may need to re-create the grid. Hopefully, you have a backup copy that can be used, or you can run the process that created it again.

ERROR 010067: Error in executing grid expression.

Description
There was a problem executing the map algebra expression.

Solution
Check the syntax of the function and ensure that you are correctly specifying all the required and any optional parameters. Be sure to check that the data type is correct. For example, specifying a character string in the command when a numerical value is expected may cause this error.

I will try a bit of experimenting to see if I can track down exactly what was the issue.

0 Kudos