POST
|
Thank you ciava.at. I eventually came up with the following way (changes underlined): for lyr in arcpy.mapping.ListLayers(route_lyr): [INDENT]if lyr.name == "Routes":[/INDENT] [INDENT][INDENT]with arcpy.da.SearchCursor(lyr, ['Total_Length']) as cursor:[/INDENT][/INDENT] [INDENT][INDENT][INDENT]for row in cursor:[/INDENT][/INDENT][/INDENT] [INDENT][INDENT][INDENT][INDENT]print row[0][/INDENT][/INDENT][/INDENT][/INDENT] Which way performs faster, I can't say.
... View more
07-04-2013
12:31 PM
|
0
|
0
|
332
|
POST
|
After solving a route I need to read the properties of the Route class. Concretely the Total_[Impedance] field as I want to compare different routes with regard to this attribute. Is there any way to do this with ArcPy? My code until this step is typical: route_lyr = arcpy.na.MakeRouteLayer(nwork,"BestRoute", "Length", output_path_shape="TRUE_LINES_WITH_MEASURES") route_lyr = route_lyr.getOutput(0) sub_layers = arcpy.na.GetNAClassNames(route_lyr) arcpy.na.AddLocations("BestRoute",sub_layers["Stops"],"stops.shp") arcpy.na.Solve(route_lyr) Then I thought about the following to get the Total_Length value of the solve result: for lyr in arcpy.mapping.ListLayers(route_lyr): [INDENT]if lyr.name == "Routes":[/INDENT] [INDENT][INDENT]print lyr.longName ### Printed just for demonstration purposes[/INDENT][/INDENT] [INDENT][INDENT]with arcpy.da.SearchCursor(lyr.longName, ['Total_Length']) as cursor: [/INDENT][/INDENT] [INDENT][INDENT][INDENT][INDENT]### "BestRoute\Routes" is passed. [/INDENT] [/INDENT][/INDENT][/INDENT] [INDENT][INDENT][INDENT][INDENT]### The error is thrown here[/INDENT][/INDENT][/INDENT][/INDENT] [INDENT][INDENT][INDENT]for row in cursor:[/INDENT][/INDENT][/INDENT] [INDENT][INDENT][INDENT][INDENT]cost = row[0][/INDENT][/INDENT][/INDENT][/INDENT] [INDENT][INDENT][INDENT][INDENT]print cost[/INDENT][/INDENT][/INDENT][/INDENT] Which prints to standard output: BestRoute\Routes An error occurred on line XXX cannot open 'BestRoute\Routes' So "BestRoute\Routes" is the long name of the Routes layer but (apparently) not the input that arcpy.da.SearchCursor expects. Generic layer properties (longName, isBroken...) can be accessed with my code, but not those network-related. I guess I'm missing the mechanism to access the network properties of the sublayer Routes that is stored in the composite layer... Any help would be much appreciated. [NOTE: Mistakenly, I posted this question in the Beta Programs forum before. Apologies]
... View more
07-02-2013
08:37 AM
|
0
|
2
|
2535
|
POST
|
I just realized I posted this in the wrong Forum. Apologies for that.
... View more
07-02-2013
08:13 AM
|
0
|
0
|
288
|
POST
|
After solving a route, I need to read the properties of the Route class. Concretely the Total_[Impedance] field as I want to compare different routes with regard to this attribute. Is there any way to do this with arcpy? My code until this step is typical: route_lyr = arcpy.na.MakeRouteLayer(nwork,"BestRoute", "Length", output_path_shape="TRUE_LINES_WITH_MEASURES") route_lyr = route_lyr.getOutput(0) sub_layers = arcpy.na.GetNAClassNames(route_lyr) arcpy.na.AddLocations("BestRoute",sub_layers["Stops"],"stops.shp") arcpy.na.Solve(route_lyr) Then I thought about the following to get the Total_Length value of the solve result: for lyr in arcpy.mapping.ListLayers(route_lyr): [INDENT]if lyr.name == "Routes": [INDENT]print lyr.longName # Printed just for explanatory purposes sCursor = arcpy.SearchCursor(lyr.longName) # "BestRoute\Routes" is passed. The error is thrown here while sCursor: [INDENT]row = sCursor.next() cost = row.getValue("Total_Length") print cost[/INDENT] [/INDENT] [/INDENT] Which prints to standard output: BestRoute\Routes An error occurred on line XXX "BestRoute\Routes" does not exist So "BestRoute\Routes" is the long name of the Routes layer but (apparently) not the input that SearchCursor expects. Generic layer properties (longName, isBroken...) can be accessed with my code, but not those network-related. I guess I'm missing the mechanism to access the network properties of the sublayer Routes that is stored in the composite layer... Any help would be much appreciated.
... View more
06-30-2013
12:50 PM
|
0
|
1
|
1978
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|