[Gfoss] Tabelle
a.furieri a lqt.it
a.furieri a lqt.it
Lun 3 Mar 2008 13:41:54 CET
On Mon, 3 Mar 2008 11:16:43 +0100, Andrea Peri wrote
> Scusa, ma devo contraddirti decisamente.
> Il file .shx non ci entra niente con l'abbinamento tra
> geometria e attributi.
> Esso contiene solo l'indicizzazione spaziale, e qui non centra,
> perche' l'indicizzazione spaziale non rappresenta il legame tra
> attributi nel dbf e geometria nel .shp.
Scusami te, ma rimango della mia idea.
Continuo a pensare che la via "meno rischiosa"
per associare geometrie ed attributi è proprio
quella di basarsi sull'SHX.
Sempre da http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
[i.e. la ben nota specifica ESRI ufficiale che rende
shapefile un formato pubblicamente documentato]:
a) shp record header:
Byte 0 Record Number Integer BigEndian
Byte 4 Content Length Integer BigEndian
b) shx record:
Byte 0 Offset Offset Integer BigEndian
Byte 4 Content Length Integer BigEndian
- The main file is a direct access, variable-record-length
file in which each record describes a shape with a list
of its vertices.
- In the index file, each record contains the offset of the
corresponding main file record from the beginning of the
main file.
- The dBASE table contains feature attributes with one record per
feature. The one-to-one relationship between geometry and
attributes is based on record number.
Quindi le strutture dati che consentono di associare
dinamicamente geometria ed attributi informativi con
accessi random che usano l'SHX come struttura guida
ci sono tutte. Poi però ti dicono anche:
- Attribute records in the dBASE file must be in the
same order as records in the main file.
Insomma, quanto meno ci sono un paio di ridondanze
[ambiguità ? contraddizioni ?] di troppo che si prestano
anche troppo bene ad interpretazioni ed implementazioni
"varie", in primis da parte di ESRI stessa.
Infatti posso dirti per esperienza personale che tutti i
non pochi shapes che mi sono capitati sotto mano che
non presentavano per nulla una corrispondenza 1:1
nell'ordinamento del DBF e dello SHP erano sicuramente
stati generati con ArcView e/o ArcGis.
> Prova ne e' che in assenza del file .shx e' sempre possibile
> recuperare il corretto abbinamento tra dbf e shp. Al riguardo qualche
> mese fa' vi fu' un thread su questo argomento e su un programmino che
> si chiamava "shapecheck".
Qui siamo in pieno hacking "a rischio".
Uno shapefile privo di SHX [oppure che presenti uno SHX
corrotto / malformed] sarebbe sempre meglio considerarlo
come "non utilizzabile"; non dubito affatto che nel 90%
dei casi si possa ricostruire lo shx a partire dai soli
shp+dbf, ma si tratta comunque di "operazioni a luci rosse"
ciao Sandro Furieri
Maggiori informazioni sulla lista
Gfoss