Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My colleague has several hundred xyz files (*.xyz) and wants to make a DEM to use it in ArcMap. Files have three columns witohut first lane (variable names).

I suggested her:

  1. to add first line with x, y and z column names (i know just manual way)
  2. to convert xyz to dbf or similar
  3. to add it in arcmap (as add x y data)
  4. finally to use point to raster tool

I would probably know how to make a script for step 3 and 4, but i don't have any ideas how to solve step 1 and 2.

Or maybe there is an easier way (a tool,script) for direct conversion from xyz to dem?

share|improve this question
up vote 3 down vote accepted

This was my final solution. There are basicaly two tools that are needed to convert *.xyz to arcmap friendly raster format. You can use this script when adding a script tool to arcmap toolbox. Some parameters are set for my example (e.g. resolution is 5 m).

import arcpy

arcpy.env.workspace = workspace


suffix = arcpy.GetParameterAsText(2)


for xyz in xyz_list:
    shape_name = str(xyz[:-4])+".shp"
    raster_name = str(xyz[:-4])+"."+str(suffix)
    arcpy.ASCII3DToFeatureClass_3d(xyz, "XYZ", shape_name, "POINT", "1", projection, "5", "","DECIMAL_POINT")
    arcpy.PointToRaster_conversion(shape_name, "Shape.Z", raster_name, "MEAN", "NONE", "5")
share|improve this answer
could you plz explain what is the meaning of "suffix = arcpy.GetParameterAsText(2)". thx – Julia Jiang Sep 30 '15 at 7:48
the name of raster file is generated automatically form xyz file name. 'suffix' let's you to select (or better say write) file type (tif, img ...). – Rok Oct 1 '15 at 13:05
  • concatenate all your xyz files together
  • use a csv2dbf converter, because your xyz file is a form of csv file. There are tons of those available by googling. I found python source code at , which seems to be a generic csv2dbf python module, despite the name.
  • import this big dbf into arcgis


  • concatenate all your xyz files together
  • import directly to arcGIS using import xy data

edit: I assume by ".xyz file" you mean a simple ascii file of the following format (for x y and z values):

x1 y1 z1
x2 y2 z2
x3 y3 z3
x4 y4 z4
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.