Atualmente estou ocupado reescrevendo o seguinte Módulo Python:<\/P>
<\/P>
Acabei de perceber que ArcHydro não reconhece o arcpy.env.workspace ou o ArcHydroTools.SetTargetLocations("HydroConfig", "Layers", "RasterWorkspace", "VectorWorkspace")<\/P>
'''Criado em 13 de março de 2017Modelo Principal do ArcHydro@author: PeterW'''<\/SPAN># importar módulos do sistema e pacotes do site<\/SPAN>from<\/SPAN> pathlib import<\/SPAN> Pathimport<\/SPAN> arcpyimport<\/SPAN> ArcHydroTools# definir argumentos<\/SPAN>rasters_workspace =<\/SPAN> r"E:\Projects\2016\G113386\ArcHydro\Model01\Layers01"<\/SPAN>dem =<\/SPAN> r"E:\Projects\2016\G113386\DEM\raw"<\/SPAN>fgdb_workspace =<\/SPAN> r"E:\Projects\2016\G113386\ArcHydro\Model01\Model01.gdb"<\/SPAN># verificar extensões e definir configurações do ambiente<\/SPAN>arcpy.<\/SPAN>CheckOutExtension(<\/SPAN>"Spatial"<\/SPAN>)<\/SPAN>arcpy.<\/SPAN>env.<\/SPAN>overwriteOutput =<\/SPAN> True<\/SPAN>def<\/SPAN> rasters_main<\/SPAN>(<\/SPAN>rasters_workspace, <\/SPAN>dem)<\/SPAN>:<\/SPAN>""" Criar Rasters como parte do ArcHydro Pre-processing"""<\/SPAN># definir workspace raster<\/SPAN> arcpy.<\/SPAN>env.<\/SPAN>workspace =<\/SPAN> rasters_workspace# definir Locais de Destino do ArcHyro para Conjuntos de Dados Raster e Vetor<\/SPAN> ArcHydroTools.<\/SPAN>SetTargetLocations(<\/Span>"HydroConfig", "Layers", rasters_workspace, fgdb_workspace) # criar raster Fill Sinks arcpy.AddMessage('Processando Fill Sinks') ArcHydroTools.FillSinks(dem, "fil") # criar raster Flow Directionrasters_main(rasters_workspace, dem) Módulo Python: arcpy.env.workspace e ArcHydroTools.SetTargetLocations ignorados pelo ArcHydro Processando Fill Sinks Traceback (última chamada mais recente): Arquivo "E:\Python\Eclipse\2015\arcpy64bit\src\archydro\archydro_main_test.py", linha 34, no <módulo> rasters_main(rasters_workspace, dem) Arquivo "E:\Python\Eclipse\2015\arcpy64bit\src\archydro\archydro_main_test.py", linha 31, em rasters_main ArcHydroTools.FillSinks(dem, "fil") Arquivo "C:\Program Files\ESRI\WaterUtils\ArcHydro\bin\ArcHydroTools.py", linha 6805, em FillSinks raise e arcgisscripting.ExecuteError: Você precisa definir o Workspace de geoprocessamento ou a Localização Raster do Arc Hydro antes de executar a ferramenta. Falha ao executar (FillSinks). <<EMOJI_37> >< spanclass = 'line-numbers-rows' > < span > << EMOJ I _38 >> </ span > < span > << EMOJ I _39 >> </ span > < span > << EMOJ I _40 >> </ span > < span > << EMOJ I _41 >> </ span > < span > << EMOJ I _42 >> </ span > < span > << EMOJ I _43 >> </ span > < span > << EMOJ I _44 >> </ span > < span > << EMOJ I _45 >> </ span > < span > << EMOJ I _46 >> </ span > < span > << EMOJ I _47 >> </ span > < span > << EMOJ I _48 >> </ span > < span > << EMOJ I _49 >> </ span > </ span ></ code ></ pre >< p > Mensagem de Erro: < / p >< p >< / p >< p > Atualmente estou usando ArcGIS 10.3.1 e ArcHydroTools 10.3.0.78 < / p >< / BODY >< / HTML >
Processando Fill Sinks Traceback (última chamada mais recente): Arquivo "E:\Python\Eclipse\2015\arcpy64bit\src\archydro\archydro_main_test.py", linha 34, no <módulo> rasters_main(rasters_workspace, dem) Arquivo "E:\Python\Eclipse\2015\arcpy64bit\src\archydro\archydro_main_test.py", linha 31, em rasters_main ArcHydroTools.FillSinks(dem, "fil") Arquivo "C:\Program Files\ESRI\WaterUtils\ArcHydro\bin\ArcHydroTools.py", linha 6805, em FillSinks raise e arcgisscripting.ExecuteError: Você precisa definir o Workspace de geoprocessamento ou a Localização Raster do Arc Hydro antes de executar a ferramenta. Falha ao executar (FillSinks). <<EMOJI_37> >< spanclass = 'line-numbers-rows' > < span > << EMOJ I _38 >> </ span > < span > << EMOJ I _39 >> </ span > < span > << EMOJ I _40 >> </ span > < span > << EMOJ I _41 >> </ span > < span > << EMOJ I _42 >> </ span > < span > << EMOJ I _43 >> </ span > < span > << EMOJ I _44 >> </ span > < span > << EMOJ I _45 >> </ span > < span > << EMOJ I _46 >> </ span > < span > << EMOJ I _47 >> </ span > < span > << EMOJ I _48 >> </ span > < span > << EMOJ I _49 >> </ span > </ span ></ code ></ pre >< p > Mensagem de Erro: < / p >< p >< / p >< p > Atualmente estou usando ArcGIS 10.3.1 e ArcHydroTools 10.3.0.78 < / p >< / BODY >< / HTML >
I don't know if this will fix your problem, but I was having a similar issue (except with vector location instead of raster location) with ThinCrossSection tool even though I set the arcpy enviroment and ArcHydro's target locations.
The issue seems to be that you need a full path to a feature instead of just the name:
<SPAN class="comment token"># This did not work for me</SPAN> ArcHydroTools<SPAN class="punctuation token">.</SPAN>ThinCrossSection<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"TEMP"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"MaxNumberOfVertices"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">500</SPAN><SPAN class="punctuation token">,</SPAN> output<SPAN class="punctuation token">,</SPAN> report<SPAN class="punctuation token">)</SPAN> <SPAN class="comment token"># This did</SPAN> output <SPAN class="operator token">=</SPAN> gdb_path <SPAN class="operator token">+</SPAN> <SPAN class="string token">'\\'</SPAN> <SPAN class="operator token">+</SPAN> output report <SPAN class="operator token">=</SPAN> gdb_path <SPAN class="operator token">+</SPAN> <SPAN class="string token">'\\'</SPAN> <SPAN class="operator token">+</SPAN> report ArcHydroTools<SPAN class="punctuation token">.</SPAN>ThinCrossSection<SPAN class="punctuation token">(</SPAN><SPAN class="string token">"TEMP"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"MaxNumberOfVertices"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">500</SPAN><SPAN class="punctuation token">,</SPAN> output<SPAN class="punctuation token">,</SPAN> report<SPAN class="punctuation token">)</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
And with this, I just had to set the arcpy workspace - I don't need to call SetTargetLocations from ArcHydro.
So specifically for yours, replacing 'fil' in the FillSinks call with the full path to 'fil' might work
Membros conectados podem postar, seguir atualizações e mais. Novo aqui? Registre uma conta gratuita.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.