Is er een manier om het BSQ bestandsformaat te openen in IDL ?
Reacties
- idl? vouw alstublieft uit.
- Weet niet zeker of dit zal helpen. We ' hebben meer informatie nodig om een beter antwoord te geven.
- Links toegevoegd voor BSQ en IDL. Het enige fatsoenlijke diagram voor BSQ dat ik kon vinden was in de Esri-help, ik ' suggereerde echter niet dat Esri-software nodig is.
Answer
Gebruikt u IDL met ENVI of op zichzelf?
Als u IDL gebruikt met ENVI (verreweg het gemakkelijkst als je hebt ENVI), dan werken de standaard ENVI-bestandsleesopdrachten. Bijvoorbeeld:
ENVI_SELECT, fid=fid, dims=dims, pos=pos ; Shows a dialog box to allow you to select a file image = ENVI_GET_DATA(fid=fid, dims=dims, pos=pos) ; Gets the data into an array called image
Als je geen ENVI hebt, is het een beetje moeilijker. U kunt de BSQ-gegevens lezen met behulp van standaard IDL-opdrachten voor het lezen van binaire bestanden (zie http://www.msi.umn.edu/software/idl/tutorial/idl-rwd.html#Reading%20Binary%20Data , maar u moet ken de afmetingen van de afbeelding (samples, lijnen en banden) om deze verstandig te kunnen splitsen. Deze informatie wordt vaak opgeslagen in een .hdr-bestand, dat ENVI automatisch leest als je de bovenstaande methode gebruikt.
Answer
IDL leest Band Sequential (BSQ) binaire bestandsindelingsstructuur als [Column, Row, Band]
BSQ, BIL and BIP are multiband encodings where: a 8-bit Grey scale image would encode 1 band of data a 24-bit RGB additive color image would be 3 bands of data a 32-bit CMYK subtractive color image would be 4 bands of data Discrete multispectral images, or contiguous hyperspectral images would have increasing numbers of bands.
Dus, zoals opgemerkt door @robintw, moet u de afmetingen en de bron / sensor van uw afbeelding kennen. Behalve de BSQ-codering, moet u vier dingen weten om de gegevens in een Interactieve IDL-array. U hebt het aantal kolommen, het aantal rijen, het aantal banden en het gegevenstype nodig. Voor elk geospatiaal werk buiten IDL moet u natuurlijk de nominale pixelgrootte en coördinaten van ten minste 3 controlepunten kennen voor beeldregistratie En aanvullende details op p opuleer een ESRI Grid World-bestand.
Voor het decoderen van uw BSQ-gegevens, IDL binaire gegevenstype keuzes zijn
0 Undefined 1 Byte 2 Integer 3 Longword Integer 4 Floating point 5 Double-precision floating 6 Complex 7 String 8 Structure 9 Double-precision complex 10 Pointer 11 Object reference 12 Unsigned Integer 13 Unsigned Longword Integer 14 64-Bit Integer 15 Unsigned 64-Bit Integer
Dus met de minimale info bij de hand: om de gegevens te “openen”, maakt u een nieuwe IDL-procedure aan.
make array of (columns,rows,bands) assign to working_array open the bsq_image for reading nested loops to read-in binary_values for each band for each row for each column read the binary_value of type from the bsq_image write the data to the working_array display working_array ;;ordered as needed for false color aesthetics
Opmerkingen
- @Yudine, zou er een bijlage of enkele details moeten zijn?
- @ Stuart, dit zijn de bestandsdetails ENVI description = {Resultaat bestandsformaat, x formaatfactor: 1.000000, y formaatfactor: 1.000000. [Thu Jan 13 18:15:18 2011]} samples = 338 regels = 308 banden = 125 header offset = 0 bestandstype = ENVI Standaard gegevenstype = 2 interleave = bsq sensortype = onbekende bytevolgorde = 0 x start = 459 y start = 1735 Aantal banden = 125
- @Yudine, het lijkt erop dat je alles hebt wat je nodig hebt om de afbeelding in een IDL-array te lezen. 338 voorbeelden – > kolommen, 308 regels – > rijen, 125 banden. Gegevenstype 2 geheel getal (waarschijnlijk 0-255). En de bytevolgorde is 0, dat wil zeggen Little Endian dus direct gelezen op een Windows-pc (zou moeten transformeren (Swap_If_Big_Endian) als een 1. Dus maak een nieuwe Pro in de IDLDE GUI, en volg de pseudocode. Een lezing van Michael Todd ' De bovenstaande opmerking met de link naar een klassikale oefening op UIdaho zou je moeten helpen met de syntaxis van de code. Je enige probleem is dan beslissen welke banden in de array moeten worden weergegeven, 125 tot combineren.
Answer
Ik heb geen ervaring met bsq of idl, maar aangezien gdal bsq ondersteunt , je zou kunnen proberen gdal_translate te gebruiken om je bestand naar een geotiff te converteren. IDL lijkt het lezen van tif-bestanden te ondersteunen.