Läser du BSQ-filformat i IDL?

Finns det ett sätt att öppna BSQ filformat i IDL ?

Kommentarer

  • idl? snälla expandera
  • Inte säker på att det detta hjälper. Vi ' vi behöver mer information för att ge ett bättre svar.
  • Länkar till BSQ och IDL. Det enda anständiga diagrammet för BSQ jag kunde hitta var i Esri-hjälpen, jag ' men jag antyder inte att Esri-programvaran behövs.

Svar

Använder du IDL med ENVI, eller av sig själv?

Om du använder IDL med ENVI (överlägset enklast om du har ENVI) kommer standardkommandona för ENVI-filläsning att fungera. Till exempel:

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 

Om du inte har ENVI är det lite svårare. Du kan läsa BSQ-data genom att använda standardkommandon för läsning av binära IDL-filer (se http://www.msi.umn.edu/software/idl/tutorial/idl-rwd.html#Reading%20Binary%20Data men du måste känna till bildens dimensioner (prover, linjer och band) för att kunna dela upp den på ett förnuftigt sätt. Denna information lagras ofta i en .hdr-fil, som ENVI läser automatiskt när du använder metoden ovan.

Svar

IDL läser binär filformats struktur för bandföljd (BSQ) som [Kolumn, rad, 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. 

Så som noteras av @robintw måste du känna till dimensionerna och källan / sensorn för din bild. Förutom BSQ-kodningen måste du veta fyra saker för att läsa data i en IDL interaktiv matris. Du behöver kolumneräkningen, radantalet, bandantalet och datatypen. Naturligtvis för allt geospatialt arbete utanför IDL behöver du veta den nominella pixelstorleken och koordinaterna för minst 3 kontrollpunkter för bildregistrering Och ytterligare detaljer till s opulate en ESRI Grid World-fil.

För avkodning av dina BSQ-data är IDL-binära datatypval

 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 

Så med minsta information till hands: För att ”öppna” data skapar du en ny IDL-procedur

 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 

Kommentarer

  • @Yudine, borde det finnas en bifogad fil eller några detaljer?
  • @ Stuart, detta är filinformationen ENVI-beskrivning = {File Resize Result, x resize factor: 1.000000, y resize factor: 1.000000. [Thu Jan 13 18:15:18 2011]} sampel = 338 rader = 308 band = 125 rubrikförskjutning = 0 filtyp = ENVI Standarddatatyp = 2 interleave = bsq-sensortyp = Okänd byteordning = 0 x start = 459 y start = 1735 Antal band = 125
  • @Yudine, ser ut som om du har allt du behöver för att läsa bilden i en IDL-array. 338 prover – > kolumner, 308 rader – > rader, 125 band. Datatyp 2 heltal (troligen 0-255). Och byteordningen är 0, dvs Little Endian så direktläsning på en Windows-dator (måste transformeras (Swap_If_Big_Endian) om en 1. Skapa en ny Pro i IDLDE GUI och följ pseudokoden. En läsning av Michael Todd ' s ovan anmärkning med länken till en klassövning vid UIdaho skulle hjälpa dig med syntax för koden. Då är din enda fråga att avgöra vilka band i matrisen som ska visas, 125 till kombinera.

Svar

Jag har inte erfarenhet av antingen bsq eller idl, men eftersom gdal stöder bsq , du kan försöka använda gdal_translate för att konvertera din fil till en geotiff. IDL verkar stödja läsning av tif-filer.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *