View Full Version : Aiuto x aprire file hdr
salve, io avrei un problema a creare quasto programmino:
creare un programma che legge il file hdr, ne ricava I parametri
del file dati associato, apre il file dati associato
questi sono i 2 files: DOWNLOAD (http://img1.freeforumzone.it/upload1/255795_hdr + bin.rar)
:help:
grazie
salve, io avrei un problema a creare quasto programmino:
creare un programma che legge il file hdr, ne ricava I parametri
del file dati associato, apre il file dati associato
questi sono i 2 files: DOWNLOAD (http://img1.freeforumzone.it/upload1/255795_hdr + bin.rar)Il primo file "Pavia_XS_Envi.bin" è un file binario con un formato, almeno a me, sconosciuto. Il secondo "Pavia_XS_Envi.hdr" è un file di testo che, da quanto ho capito, fornisce qualche informazione sul file bin.
Ma in ogni non è affatto chiaro come è strutturato il file .bin. Senza delle informazioni e delle specifiche precise su cosa contiene il file bin, dubito che si possa fare qualcosa con quel file.
Inoltre dovresti specificare con quale linguaggio vuoi/devi fare questo programmino. ;)
le uniche informazioni che ho sono quelle e dovrei farlo con java
ho anche questa documentazione: DOWNLOAD (http://img1.freeforumzone.it/upload1/255795_documentazione.rar)
e le istruzioni totali sarebbero queste:
Passo 1: creare un programma che legge il file hdr, ne ricava I parametri
del file dati associato, apre il file dati associato
Passo 2: usando la banda 1 e la banda 4 del file dati, calcolo del NDVI e
sua visualizzazione
Passo3: diesegnare un'interfaccia che opermetta all'utente di scegliere il
valore del NDVI di soglia visualizzando cosa succede un real time per la
scelta di un valore o di un altro
Passo 4: scelta la soglia, l'utente salva il file in formato ENVI 8 cioe'
dati e HDR). Il file contiene il valore dell'NDVI nei punti dove è piu' alto
della soglia, 0 negli altri punti.
le uniche informazioni che ho sono quelle e dovrei farlo con java
ho anche questa documentazione: DOWNLOAD (http://img1.freeforumzone.it/upload1/255795_documentazione.rar)Beh, ok ... così è già un po' più chiaro! ;)
Credo di aver capito quale è la struttura del file. Il file bin è lungo 524288 (esattamente 512KiB). Nell'header c'è scritto:
samples = 256
lines = 256
bands = 4
data type = 2
Cioè il file binario è suddiviso in 4 blocchi. Ogni blocco è composto da un array di 256x256 interi a 16 bit (data type 2). I conti tornano: 256 * 256 * 2 * 4 = 524288. :)
e le istruzioni totali sarebbero queste:
...Non ti so dire molto di più sui calcoli perché non so cosa siano :(
Comunque, a grandi linee, puoi fare così:
Crei una classe (es. EnviHeader) che incapsula i dati dell'header. Tramite un metodo apposito, apri, leggi il file riga x riga, interpreti i valori e li metti nella classe.
Poi crei una seconda classe (es. EnviData) a cui passi un oggetto della precedente classe. A quel punto, apri il file binario e in base ai parametri, leggi i dati. Ad esempio potresti ottenere un array bidimensionale con tutti i dati di una banda.
ok grazie ci provo
anche se non ho la + pallida idea di come si faccia lol
ok grazie ci provo
anche se non ho la + pallida idea di come si faccia lolC'è una cosa che non ho capito: per il data type parla di 1=byte, 2=integer, 3=long integer. Ma questi tipi interi sono con segno o senza segno???
Comunque, se mi permetti un suggerimento, inizia a creare la classe che si occupa esclusivamente di leggere ed incapsulare le informazioni del file di header. Tieni presente che nell'header ci sono diverse informazioni che influenzano il modo con cui si devono poi leggere i dati dal file .bin. E cioè i valori di "interleave" e "byte order".
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.