1579
How to programmatically output to ascii x,y,z format
ENVI's routine, ENVI_OUTPUT_TO_EXTERNAL_FORMAT, allows you to output to grid ascii format but not x,y,z format as you can in the file output dialog. This Help Article shows how to use an undocumented routine, OUTPUT_TO_ASCII_DOIT, to get ascii output in x, y, z format.
PRO ascii_xyz_out_example
compile_opt idl2
;select file to output
file = 'c:\rsi\idl63\products\envi43\data\bhdemsub.img'
;open and query file
envi_open_file, file, r_fid=fid
envi_file_query, fid, dims=dims, ns=ns, nl=nl, nb=nb
;select a subset of the image for output just for testing purposes
subset = [-1, 0, 99, 0, 99]
;set the band you want to output - xyz output is only available for single bands
pos = 0
out_name = 'test.txt'
;call the doit - be sure to set the output fields appropriately
;in this example, the output field can be 14 digits long with 4 digits of precision
output_to_ascii_doit, fid=fid, dims=subset, pos=pos, out_name=out_name, field = [14L, 4],$
/output_xy, xy_field=[14L, 4]
;remove file
envi_file_mng, id=fid, /remove
END
-----------------