r.in.bin(1)

πŸ’– r.in.bin β€” NAME πŸ’–

okay so bestie, welcome to the r.in.bin(1) page from the GRASS GIS User's Manual ✨ this one's a lil legend: she takes your random binary raster file and turns it into an actual GRASS raster map layer. main character energy, no cap πŸ‘‘

r.in.bin β€” Import a binary raster file into a GRASS raster map layer.


🏷️ KEYWORDS

raster, import β€” that's the whole vibe check right there, she's a raster importer periodt πŸŽ€


πŸ“œ SYNOPSIS

r.in.bin
r.in.bin --help
r.in.bin [-fdsbh] input=name output=name  [title=phrase]
[bytes=integer]   [header=integer]   [bands=integer]   [order=string]
[north=float]   [south=float]   [east=float]   [west=float]
[rows=integer]   [cols=integer]   [anull=float]
[flip=string[,string,...]]   [--overwrite]  [--help]  [--verbose]
[--quiet]  [--ui]

🚩 Flags

  • -f β€” import it as floating-point data (the default is integer, just so you know πŸ‘€)
  • -d β€” import it as double-precision floating-point data (again, default is integer)
  • -s β€” signed data, as in two's complement πŸ’€
  • -b β€” byte swap the data while importing, she's flipping those bytes around
  • -h β€” grab the region info from a GMT style header
  • --overwrite β€” let the output files overwrite files that already exist
  • --help β€” print the usage summary
  • --verbose β€” verbose module output, she tells you everything
  • --quiet β€” quiet module output, she tells you nothing
  • --ui β€” force launching the GUI dialog

πŸŽ›οΈ Parameters

  • input=name [required] β€” name of the binary raster file you wanna import
  • output=name [required] β€” output name, or a prefix if you're importing several bands
  • title=phrase β€” title for the resultant raster map
  • bytes=integer β€” number of bytes per cell. Options: 1, 2, 4, 8
  • header=integer β€” header size in bytes. Default: 0
  • bands=integer β€” number of bands in the input file. Heads up: bands must be in band-sequential order. Default: 1
  • order=string β€” output byte order. Options: big, little, native, swap. Default: native
  • north=float β€” northern limit of the geographic region (that's the outer edge, bestie)
  • south=float β€” southern limit of the geographic region (outer edge again)
  • east=float β€” eastern limit of the geographic region (outer edge, yes)
  • west=float β€” western limit of the geographic region (outer edge, mhm)
  • rows=integer β€” number of rows
  • cols=integer β€” number of columns
  • anull=float β€” set value to NULL
  • flip=string[,string,...] β€” flip the input horizontal and/or vertical. Options: h, v
    • h: flip input horizontal (East - West)
    • v: flip input vertical (North - South)

🌸 DESCRIPTION

r.in.bin lets you create a (binary) GRASS raster map layer out of a whole bunch of different binary raster data formats. she's versatile like that πŸ’…

The -s flag is the one you use for importing two's-complement signed data.

The -h flag is for reading region information out of a Generic Mapping Tools (GMT) type binary header. It's compatible with GMT binary grid types 1 and 2.

The north, south, east, and west field values are the coordinates of the edges of the geographic region. The rows and cols values describe the dimensions of the matrix of data that's coming next. If your input is a GMT binary array (that's the -h flag, iykyk), then all six dimension fields (north, south, east, west, rows and cols) get pulled straight from the GMT header. And if you enter the bytes field incorrectly, an error gets generated suggesting a closer bytes value β€” she'll help you out 🫢

r.in.bin can be used to import a whole lineup of binary arrays, including: ETOPO30, ETOPO-5, ETOPO-2, Globe DEM, BIL, AVHRR and GMT binary arrays (ID 1 & 2).


πŸ“ NOTES

If optional parameters aren't supplied, r.in.bin attempts to calculate them herself. For example, if the rows and columns parameters aren't entered, r.in.bin automatically calculates them by subtracting south from north and west from east. Careful though β€” this only produces correct results if the raster resolution equals 1. Also, if the north, south, east, and west parameters aren't entered, r.in.bin assigns them from the rows and columns parameters. In the AVHRR example (peep it below), the raster would be assigned a north=128, south=0, east=128, west=0.

The geographic coordinates north, south, east, and west describe the outer edges of the geographic region. They run along the edges of the cells at the edge of the geographic region, and not through the center of the cells at the edges. important distinction, bestie 🎯

  • Eastern limit of geographic region (in projected coordinates must be east of the west parameter value, but in geographical coordinates will wrap around the globe; user errors can be detected by comparing the ewres and nsres values of the imported map layer carefully).
  • Western limit of geographic region (in projected coordinates must be west of the east parameter value, but in geographical coordinates will wrap around the globe; user errors can be detected by comparing the ewres and nsres values of the imported map layer carefully).

πŸ”’ Notes on (non)signed data

  • If you use the -s flag, the highest bit is the sign bit. If this is 1, the data is negative, and the data interval is half of the unsigned (not exactly).
  • This flag is only used if bytes= 1. If bytes is greater than 1, the flag is ignored.

πŸ”₯ EXAMPLES

πŸ”οΈ GTOPO30 DEM

Here's a sample call of r.in.bin to import GTOPO30 DEM data:

r.in.bin -sb input=E020N90.DEM output=gtopo30 bytes=2 north=90 south=40
east=60 west=20 r=6000 c=4800

(you can add "anull=-9999" if you want sea level to have a NULL value 🌊)

🌍 GMT

Here's a sample call of r.in.bin to import a GMT type 1 (float) binary array:

r.in.bin -hf input=sample.grd output=sample.grass

(-b could be used to swap bytes if required)

πŸ›°οΈ AVHRR

Here's a sample call of r.in.bin to import an AVHRR image:

r.in.bin in=p07_b6.dat out=avhrr c=128 r=128

🌊 ETOPO2

Here's a sample call of r.in.bin to import ETOPO2 DEM data (here full data set):

r.in.bin ETOPO2.dos.bin out=ETOPO2min r=5400 c=10800 n=90 s=-90 w=-180 e=180 bytes=2
r.colors ETOPO2min rules=terrain

🐟 TOPEX/SRTM30 PLUS

Here's a sample call of r.in.bin to import SRTM30 PLUS data:

r.in.bin -sb input=e020n40.Bathymetry.srtm output=e020n40_topex \
         bytes=2 north=40 south=-10 east=60 west=20 r=6000 c=4800
r.colors e020n40_topex rules=etopo2

β˜” GPCP

Here's a sample call of r.in.bin to import GPCP 1DD v1.2 data:

YEAR="2000"
MONTH="01"
# number of days of this month
MDAYS=`date -d"${YEAR}-${MONTH}-01 + 1 month - 1 day" +%d`
r.in.bin in=gpcp_1dd_v1.2_p1d.${YEAR}${MONTH} out=gpcp_${YEAR}.${MONTH}. \
         order=big bytes=4 -f header=1440 anull=-99999 \
         n=90 s=-90 w=0 e=360 rows=180 cols=360 bands=$MDAYS

And here's a sample call of r.in.bin to import GPCP v2.2 data:

r.in.bin in=gpcp_v2.2_psg.1979 out=gpcp_1979. \
         order=big bytes=4 -f header=576 anull=-99999 \
         n=90 s=-90 w=0 e=360 rows=72 cols=144 bands=12

πŸ‘€ SEE ALSO

r.import, r.out.bin, r.in.ascii, r.out.ascii, r.in.gdal, r.out.gdal, r.in.srtm


πŸ‘‘ AUTHORS

  • Jacques Bouchard, France (bouchard@onera.fr)
  • Bob Covill, Canada (bcovill@tekmap.ns.ca)
  • Markus Metz
  • Man page: Zsolt Felker (felker@c160.pki.matav.hu)

πŸ“¦ SOURCE CODE

Available at: r.in.bin source code (history)

Accessed: Saturday Jan 17 05:40:47 2026

Main index | Raster index | Topics index | Keywords index | Graphical index | Full index


Β© 2003-2025 GRASS Development Team, GRASS GIS 8.4.2 Reference Manual

and that's a wrap bestie πŸŽ€ this was r.in.bin(1) out of the GRASS 8.4.2 manual β€” go import something iconic, you got this πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from