Select to view content in your preferred language

Assign Z value from DEM to line ends

2282
2
01-09-2013 10:43 AM
ScottMacDonald
Deactivated User
PLEASE HELP URGENT - Is there anyone at all who can help with this?  I wrote a script based on the Extract Value To Points tool but it doesn't work properly.

I have a simplified line shapefile and I want to add elevation (z values) from a DEM raster layer to the end points of the lines.

I have written the following code (its user input) but when I run it as a tool it reports that it has run successfully but it doesn't actually output the point shape file with the z values!

Any hints or even alternative suggestions would be appreciated.

code -

# script to extract raster values to point shapefile
# adapted by Scott MacDonald Kingston University k0848626 GSM655Programming Asssignment C

# import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# get user supplied path, layers and fields
path = arcpy.GetParameterAsText(0)
arcpy.env.workspace = path

# in Feature Layer is Confluence_Pts
in_point_features = arcpy.GetParameterAsText(1)
# in Raster Layer is DEM
in_raster = arcpy.GetParameterAsText(2)
# out Feature Class
out_point_features = arcpy.GetParameterAsText(3)

# error trapping measures
try:
# check out spatial analyst extension
arcpy.CheckOutExtension("Spatial")

# run the ExractValuesToPoints tool
arcpy.ExtractValuesToPoints(in_point_features, in_raster, out_point_features)

# check in spatial analyst extension
arcpy.CheckInExtension("Spatial")

except:
print arcpy.GetMessages()
Tags (2)
0 Kudos
2 Replies
GerryGabrisch
Frequent Contributor
Add surface information in the 3d analyst toolbox will populate your line nodes with z values.
0 Kudos
curtvprice
MVP Alum
PLEASE HELP URGENT - Is there anyone at all who can help with this?  I wrote a script based on the Extract Value To Points tool but it doesn't work properly.


You have incorrect syntax for ExtractValuesToPoints. You need to add the toolbox name after it if you prefix the tool name with arcpy.

I'm pretty sure your script is failing (the tool is not running). You are getting a python error which is not getting printed by your except block.

There are good examples in the online help on how to use python exceptions to capture both kinds of errors and report more helpful messages.


# script to extract raster values to point shapefile
# adapted by Scott MacDonald Kingston University k0848626 GSM655Programming Asssignment C

# import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# get user supplied path, layers and fields
path = arcpy.GetParameterAsText(0)
arcpy.env.workspace = path

# in Feature Layer is Confluence_Pts 
in_point_features = arcpy.GetParameterAsText(1)
# in Raster Layer is DEM
in_raster = arcpy.GetParameterAsText(2)
# out Feature Class
out_point_features = arcpy.GetParameterAsText(3)

# error trapping measures
try:
 # check out spatial analyst extension
 arcpy.CheckOutExtension("Spatial")

 # run the ExractValuesToPoints tool
 arcpy.ExtractValuesToPoints_sa(in_point_features, in_raster, out_point_features)
        # because of your "from arcpy.sa import *" above you could perhaps do this too:
 # ExtractValuesToPoints(in_point_features, in_raster, out_point_features)

 # check in spatial analyst extension
 arcpy.CheckInExtension("Spatial")

except Exception, msg:
 print arcpy.GetMessages() # ArcGIS tool messages
        print "Python errors:\n",str(msg) # python errors
0 Kudos