Vimage Special
Fiximage File Format Description
FIXIMAGE FILE FORMAT DOCUMENTATION ================================== (Issue 03.01.09) IN GENERAL ---------- The Fiximage file format is a highly simple and precise raster image file format. Fiximages are in general raw data. The first 512 file bytes contains a header with few control parameters. At byte 512 is starting the image data matrix, each pixel - one grey value per band. The image matrix is stored in line by line order, band sequential with a 32 byte alignment. HEADER DATA ----------- Header length: 512 bytes. The 1st 256 file bytes contains 32 8-byte words. The 2nd 256 file bytes contains 3 text or comment strings. ------------------------------------------------------------------------------- 00 ImgType String*8 X Must be FIXIMAGE. Also little/big endian indicator 08 ImgTyp2 String*8 O (Fixlib-Version. 8 chars) 16 ImgXXXX Long X Number of columns 24 ImgYYYY Long X Number of rows 32 ImgNofB Long X Number of bands or channels 40 ImgNofL Long O Number of layers (Should be 1) 48 ImgDTyp String*8 X Data type. BINARY ... BYTE ... COMPLEX 56 ImgDefL Long O Default layer (Should be 1) 64 GeoType String*8 . [not used] 72 GeoTyp2 String*8 . [not used] 80 GeoNUni String*8 X Reference unit: KM, M, CM, MM ... 88 GeoMUni Currency O Map unit. (Should be MM) 96 GeoSWPX Currency X SW pixel centre geo coordinate X 104 GeoSWPY Currency X SW pixel centre geo coordinate Y 112 GeoNEPX Currency X NE pixel centre geo coordinate X 120 GeoNEPY Currency X NE pixel centre geo coordinate Y 128 RadMode String*8 X Color model: MONO, XY, RGB or CMYK 136 RadUnit String*8 O Vertical unit. Should be M 144 RadType String*8 . [not used] 152 RadTyp2 String*8 . [not used] 160 RadBLev Currency X Black level 168 RadWLev Currency X White level 176 GeoScaX Currency X Reference scale number X 184 GeoScaY Currency X Reference scale number Y 192 AuxPar1 Long . [not used] 200 AuxPar2 Long . [not used] 208 AuxPar3 Long . [not used] 216 AuxPar4 Long . [not used] 224 AuxPar5 Long . [not used] 232 AuxPar6 Long . [not used] 240 HdrGenE Byte*8 X Header generation params, actual: 0 0 0 0 0 0 0 3 248 HdrLeng Long O (Header length. Should be 512) ------------------------------------------------------------------------------- 256 ComTitl String*64 . Title 320 ComNote String*64 . Note 384 ComDesc String*128 . Description ------------------------------------------------------------------------------- Long: 64 bit signed integer. Currency: 64 bit signed integer multiplied with 10000 (Fixpoint). Byte*8: 8 x 8 bytes. String*n: Fixed length strings, length n. X ... Must be set. O ... Should be set to future use. . ... Not in use or comment IMAGE DATA ---------- Per pixel (and band) is storaged one numeric value, the grey value of the pixel. The 1st pixel of the 1st line of the 1st band has file address 512. The data is storaged first line by line, than band sequential. The lines have a 32 byte alignment. Every new line startes on a 32 byte limit. The 16 supported data types are: ¯VOID« 0 bit/value. All values are zero. ¯BINARY« 1 bit/value. 2 values, 0 or 255 ¯NONARY« 3.2 bit/value. 9 values 0, 31.8, 63.7, 95.6, 127.5 ... 255 ¯BYTE« 8 bit integers 0 ... 255 ¯CHAR« 16 bit integers 0 ... 65535 ¯SHORT« 16 bit integers -32768 ... +32767 ¯RELIEF« 16 bit numbers -10268 ... +10267 (in range ±2500 0.1 precision) ¯TETRABYT« 32 bit integers 0 ... 4294967295 ¯INTEGER« 32 bit integers -2147483548 ... 2147483647 ¯FIXPOINT« 32 bit fixpoint numbers -214748.3648 ... 214748.3647 ¯SINGLE« 32 bit single float. Up to 10E38, 7 digits precision ¯OCTABYTEG« 64 bit integers 0 ... 18446744073709551615 ¯LONG« 64 bit integers -9223372036854775808 ... 9223372036854775807 ¯CURRENCY« 64 bit-fixpoint numbers, -922337203685477.5808-922337203685477.5807 ¯DOUBLE« 64 bit double float. Up to 10E308, 14 digits precision ¯COMPLEX« 64 bit complex. Two 32 bit float numbers (real and imaginary) ¯NONARY« encodes the 9 values 0, 31.8, 63.7, 95.6, 127.50 ... 255 in 3.2 bit per value. That is a compact data type especially for maps and drawings. The 9 values are codes as nonary digits 0 ... 8 and taken as a 10-nonary-digit-word 0 ... 3'486'784'401 in a 32 bit integer. ¯RELIEF« encodes the values 0 ... ±2500 als 0 ... ±25000 with one digit after decimal point. Values > 2500 are integers and shifted in the range ±25000 ... ±32767. Such encoding allows a compact DEM storaging with a elevation range -10268 ... +10267 (experimental state). ¯FIXPOINT« and ¯CURRENCY« are fixpoint formats both with 4 digits after decimal point. Fixpoint also is a recommended DEM data storage format. COORDINATES ----------- • Image coordinates: The left lower image corner (SW corner) has image coordinate (1, 1). Every pixel increments by 1. • Geo coordinates are unitless coordinates in the nature or a map. They are defined by the header parameters GeoSWPX, GeoSWPY, GeoNEPX and GeoNEPY. Each pixel geo coordinate gives the pixel centre position. To convert them into pixel corner coordinates add 1/2 pixel size. • Output coordinates are millimeter coordinates on a output media. To get them add the reference unit GeoNUni (km, m, cm, mm, µm, degree, inch ...) to the (unitless) geo coordinate and scale it with the reference scales GeoScaX (GeoScaY). Then shift coordinate (0, 0) to the left lower corner of the left lower pixel. • All coordinates are defined Cartesian. That means that x = right-, y = up- direction. OTHER REMARKS ------------- • Vimage internal number format is single. • Grey value -9999.0000 often means ¯empty«. • The Vimage internal image matrices have 16 outer margin. FIXLIB CONSTANTS ---------------- FIXLIB_COMMENT [Fixlib comment ] (String) Fixpoint Image File Format Library FIXLIB 03.01.09, 18.09.2009 FIXLIB_VERSION [Fixlib version ] (String) 03.01.09 FIXLIB_GENERATION [Fixlib subversion ] (Long) 3 FIXMAXINTEGER [Largest 32 bit int ] (Long) 2147483647 FIXMININTEGER [Smallest 32 bit int ] (Long) -2147483648 FIXMAXUINTEGER [Largest 32 bit uint ] (Double) 4294967295 FIXMAX [Largest fixpoint ] (Double) 214748,3647 FIXMIN [Smallest fixpoint ] (Double) -214748,3648 FIXMAXCOREX [Max numb of columns ] (Long) 262144 FIXMAXCOREY [Max numb of lines ] (Long) 262144 FIXDIV [Fixpoint divisor ] (Long) 10000 FIX_EARTH_RADIUS [Earth radius] (Double) 6371004,2029572 FIX_EARTH_RADIUS_POLE (Double) 6371004,2029572 FIX_EARTH_RADIUS_EQUATOR (Double) 6371004,2029572 FIX_DEGREE_IN_M [Earth degree length ] (Double) 111195 FIX_NAUTICAL_MILE_IN_M [Nautical mile] (Double) 1853,25 [End of Fiximge documentation]