Red de conocimiento informático - Material del sitio web - Cómo utilizar IDL para procesar datos de Shapefile

Cómo utilizar IDL para procesar datos de Shapefile

Cómo usar IDL para procesar datos de Shapefile

Para usar IDL para procesar datos en formato de archivo de forma, primero debe comprender el objeto IDLffShape. Hay algunas instrucciones y códigos en la ayuda de IDL, pero son demasiado simples y. Es difícil para personas desconocidas comenzar. Ahora se explicarán algunos puntos clave: el sentido y el SIG son inseparables. IDL es bueno para procesar datos de teledetección, pero ocasionalmente es necesario utilizar algunos datos SIG. Shapefiles. 1. Lea el archivo Shapefile 1. Primero, abra el archivo

Tomemos los datos en Arcview como ejemplo para usar los datos de los límites del país.

Para crear y destruir idlffshape, use los comandos comunes OBJ_new y Obj_Destroy de IDL para procesar objetos respectivamente. Recuerde destruir cada objeto que cree, de lo contrario habrá un problema de memoria insuficiente.

pro readshapefile

shapefile='C:\ESRI\ESRIDATA\WORLD\country.shp' ;Define la ubicación del archivo de forma

oshp=Obj_New ('IDLffShape', nombre de archivo)

imprimir ohp

; código de procesamiento intermedio

Obj_destroy, ohp; Destruir un objeto de forma

end;

p>

Si hay un error de lectura, ohp devuelve -1, de lo contrario devuelve una estructura.

2. Obtenga la descripción general

Después de leer el objeto de forma, debe leer los datos de geometría y los datos de la tabla de atributos. Los datos del Shapefile constan de dos partes: geometría (o entidad). y tabla de atributos. La geometría generalmente incluye puntos, polilíneas y polígonos. Por supuesto, hay otros tipos, pero se utilizan con menos frecuencia). La tabla de atributos incluye la estructura de la tabla de atributos, la cantidad de campos y la cantidad de registros. La cantidad de registros y campos en la tabla de atributos debe corresponder uno a uno. La estructura de la tabla de atributos incluye nombres de campos y tipos de campos. , longitudes de campo y precisión.

Antes de leer datos en IDL, necesita conocer algunas propiedades globales, cuántas geometrías y registros hay y cuántos campos hay en la tabla de atributos. Debe utilizar el método GetProperty, que puede. consulta Los atributos del shapefile incluyen tipo de entidad, número de entidades, estructura de la tabla de atributos, número de campos en la tabla de atributos, número de registros, etc. El código es el siguiente:

pro readshapefile

shapefile='C: \ESRI\ESRIDATA\WORLD\country.shp' ;Define la ubicación del archivo de forma

oshp=Obj_New('IDLffShape', nombre de archivo)

oshp-gt; getproperty, n_entities= n_ent, Attribute_info=attr_info, n_attributes=n_attr, Entity_type=ent_type

print, 'Número de entidades: n_ent

print, 'Número de campos de la tabla de atributos:', n_attr

print,'Entity_type code:',ent_type

Obj_destroy,oshp; Destruir un objeto de forma

end

3. Más conceptos

bouns

Almacena el rango de cada entidad, que es una matriz de 8 elementos (

new_attr.(0 )=2

new_attr.(1)='Lanzhou'

new_attr.(2)=103.8676

new_attr.(3)=36.0480

oshp -gt; PutEntity, entNew

oshp -gt; SetAttributes, .1, new_attr;

OBJ_DESTROY, ohp

print, 'end '

Fin

Lo anterior es para agregar datos de tipo punto, lo cual es relativamente simple. Para un punto más complicado, agregue dos polígonos

pro writepolygon

shapefile='d: \test\Forbidden_City.shp'

oshp=obj_new('IDLffshape', shapefile, Entity_type=5,/update)

; tipo de entidad

entNew = {IDL_SHAPE_ENTITY}

entNew.SHAPE_TYPE = 5

;Agregar coordenadas

coor=

pvertice=coor

entNew.VERTICES=PTR_NEW(pvertice,/no_copy)

entNew.N_VERTICES=(tamaño(coor))[2]

entNew.N_Parts=2