ນີ້ແມ່ນຄໍາສັ່ງ r.compressgrass ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
r.ບີບອັດ - ບີບອັດແລະບີບອັດແຜນທີ່ raster.
KEYWORDS
raster, ການຄຸ້ມຄອງແຜນທີ່, ການບີບອັດ
ສະຫຼຸບສັງລວມ
r.ບີບອັດ
r.ບີບອັດ - ຊ່ວຍ
r.ບີບອັດ [-up] ແຜນທີ່=string[,string,...] [--ຊ່ວຍເຫຼືອ] [--ຄຳເວົ້າ] [--ງຽບ] [--ui]
ທຸງ:
-u
ຍົກເລີກການບີບອັດແຜນທີ່
-p
ພິມຂໍ້ມູນການບີບອັດແລະປະເພດຂໍ້ມູນຂອງແຜນທີ່ການປ້ອນຂໍ້ມູນ
- ຊ່ວຍ
ພິມສະຫຼຸບການນຳໃຊ້
-- verbose
ຜົນຜະລິດໂມດູນ Verbose
--ງຽບ
ຜົນຜະລິດໂມດູນງຽບ
--ui
ບັງຄັບໃຫ້ເປີດກ່ອງໂຕ້ຕອບ GUI
ຕົວກໍານົດການ:
ແຜນທີ່=string[,string,...] [ຕ້ອງການ]
ຊື່ຂອງແຜນທີ່ raster ທີ່ມີຢູ່ແລ້ວ
ລາຍລະອຽດ
r.ບີບອັດ ສາມາດໃຊ້ເພື່ອບີບອັດແລະບີບອັດຊັ້ນຂໍ້ມູນແຜນທີ່ raster. ນອກຈາກນັ້ນ, ມັນ
ພິມຂໍ້ມູນກ່ຽວກັບການບີບອັດແຜນທີ່ ແລະປະເພດຂອງຂໍ້ມູນຂອງແຜນທີ່ input raster(s).
ໃນລະຫວ່າງການບີບອັດ, ໂຄງການນີ້ປະຕິຮູບແບບແຜນທີ່ raster ການນໍາໃຊ້ການເຂົ້າລະຫັດໄລຍະຍາວ (RLE)
ຫຼືລະບົບ "deflate" ຂອງ ZLIB (LZ77-based) algorithm. ຊັ້ນແຜນທີ່ Raster ເຊິ່ງບັນຈຸມີໜ້ອຍຫຼາຍ
ຂໍ້ມູນ (ເຊັ່ນ: ເຂດແດນ, ທໍລະນີສາດ, ດິນແລະແຜນທີ່ການນໍາໃຊ້ທີ່ດິນ) ສາມາດຫຼຸດລົງຢ່າງຫຼວງຫຼາຍໃນ
ຂະໜາດ. ບາງຊັ້ນແຜນທີ່ raster ຖືກຫຍໍ້ລົງເປັນປະມານ 1% ຂອງຂະໜາດຕົ້ນສະບັບຂອງພວກມັນ. ແຜນທີ່ Raster
ຊັ້ນທີ່ມີຮູບພາບທີ່ຊັບຊ້ອນເຊັ່ນ: ລະດັບຄວາມສູງແລະຮູບພາບຫຼືດາວທຽມອາດຈະ
ເພີ່ມຂຶ້ນເລັກນ້ອຍໃນຂະຫນາດ. ແຜນທີ່ raster ທີ່ສ້າງຂຶ້ນໃໝ່ທັງໝົດຈະຖືກເກັບໄວ້ໂດຍອັດຕະໂນມັດ
ຮູບແບບການບີບອັດ (ເບິ່ງ FORMATS ຂ້າງລຸ່ມນີ້). ໂມດູນອື່ນໆສາມາດອ່ານໄດ້ທັງ compressed ແລະປົກກະຕິ
(ບໍ່ໄດ້ບີບອັດ) ຮູບແບບໄຟລ໌.
ຕົວຢ່າງ, ຊັ້ນແຜນທີ່ raster ຖານຂໍ້ມູນ Spearfish ເຈົ້າຂອງ ໃນເບື້ອງຕົ້ນແມ່ນຂະຫນາດຂອງ
26600 ໄບຕ໌. ຫຼັງຈາກທີ່ມັນຖືກບີບອັດ RLE, ແຜນທີ່ raster ໄດ້ກາຍເປັນພຽງແຕ່ 1249 bytes (25351).
ໄບຕ໌ນ້ອຍລົງ).
ໄຟລ໌ Raster ອາດຈະຖືກບີບອັດດ້ວຍຕົນເອງເພື່ອສົ່ງພວກມັນກັບຄືນສູ່ຮູບແບບຕົ້ນສະບັບຂອງເຂົາເຈົ້າ, ໂດຍໃຊ້
ໄດ້ -u ທຸງຂອງ r.ບີບອັດທີ່ຢູ່ ຖ້າຫາກວ່າ r.ບີບອັດ ຖືກຮ້ອງຂໍໃຫ້ບີບອັດແຜນທີ່ raster ຊຶ່ງເປັນ
ບີບອັດແລ້ວ (ຫຼືເພື່ອ decompress ແຜນຜັງ raster ທີ່ຖືກບີບອັດແລ້ວ), ມັນງ່າຍດາຍ
ແຈ້ງໃຫ້ຜູ້ໃຊ້ຮູ້ວ່າແຜນທີ່ຖືກບີບອັດ ແລະອອກແລ້ວ.
ຄຳສັບ
· ແຜນທີ່ INTEGER (ປະເພດຂໍ້ມູນ CELL): ແຜນທີ່ raster ຈາກປະເພດ INTEGER (ທັງຫມົດຈໍານວນເທົ່ານັ້ນ)
· ແຜນທີ່ FLOAT (ປະເພດຂໍ້ມູນ FCELL): ແຜນທີ່ raster ຈາກປະເພດ FLOAT (4 bytes, 7-9 ຕົວເລກ
ຄວາມຊັດເຈນ)
· ແຜນທີ່ຄູ່ (ປະເພດຂໍ້ມູນ DCELL): ແຜນທີ່ raster ຈາກປະເພດຄູ່ (8 bytes, 15-17 ຕົວເລກ
ຄວາມຊັດເຈນ)
· NULL: ເປັນຕົວແທນ "ບໍ່ມີຂໍ້ມູນ" ໃນແຜນທີ່ raster, ເພື່ອແຍກອອກຈາກຂໍ້ມູນ 0 (ສູນ)
ມູນຄ່າ
ນໍາໃຊ້ ບີບອັດ ALGORITHMS
ແຜນທີ່ຈຸດລອຍ (FCELL, DCELL) ບໍ່ເຄີຍໃຊ້ການບີບອັດ RLE; ພວກເຂົາເຈົ້າແມ່ນ
ບີບອັດດ້ວຍ ZLIB ຫຼືບໍ່ໄດ້ບີບອັດ.
Integer (CELL) ແຜນທີ່ raster ແມ່ນຖືກບີບອັດ ZLIB ໂດຍຄ່າເລີ່ມຕົ້ນ ຫຼືອາດຈະບໍ່ຖືກບີບອັດ. ຖ້າ
ຕົວແປສະພາບແວດລ້ອມ GRASS_INT_ZLIB ມີຢູ່ ແລະມີມູນຄ່າ 0, ສ້າງຂຶ້ນໃໝ່.
ຈຳນວນເຕັມທີ່ບີບອັດ (ປະເພດ CELL) ແຜນທີ່ raster ຈະຖືກບີບອັດໂດຍໃຊ້ RLE compression
ແທນ ZLIB.
ໃນໄຟລ໌ cellhd ພາຍໃນ, ຄ່າສໍາລັບ "ບີບອັດ" ແມ່ນ 1 ສໍາລັບ RLE ແລະ 2 ສໍາລັບ ZLIB.
ແນ່ນອນ, ການບີບອັດຖືກຄວບຄຸມໂດຍການບີບອັດແຜນທີ່ raster, ບໍ່ແມ່ນ
environment variable
ຫມາຍເຫດ
r.ບີບອັດ ສາມາດດໍາເນີນການໄດ້ທັງແບບບໍ່ໂຕ້ຕອບ ຫຼືແບບໂຕ້ຕອບ. ໃນການນໍາໃຊ້ທີ່ບໍ່ແມ່ນການໂຕ້ຕອບ,
ຜູ້ໃຊ້ຕ້ອງລະບຸຊື່ (s) ຂອງຊັ້ນແຜນທີ່ raster ທີ່ຈະໄດ້ຮັບການບີບອັດ (ຫຼື
decompressed) ໃນບັນທັດຄໍາສັ່ງ, ການນໍາໃຊ້ແບບຟອມ ແຜນທີ່=ຊື່[,ຊື່, ...] (ທີ່ແຕ່ລະຄົນ ຊື່ is
ຊື່ຂອງຊັ້ນແຜນທີ່ raster ທີ່ຈະບີບອັດຫຼື decompressed). ພຶດຕິກໍາເລີ່ມຕົ້ນແມ່ນ
ເພື່ອບີບອັດແຜນທີ່ທີ່ມີຊື່.
ຮູບແບບ
Conceptually, ໄຟລ໌ຂໍ້ມູນ raster ປະກອບດ້ວຍແຖວຂອງຈຸລັງ, ແຕ່ລະແຖວມີ
ຈໍານວນຈຸລັງດຽວກັນ. ເຊລປະກອບດ້ວຍໜຶ່ງ ຫຼືຫຼາຍໄບຕ໌. ຈຳນວນໄບຕ໌ຕໍ່ເຊລ
ຂຶ້ນກັບຄ່າໝວດໝູ່ທີ່ເກັບໄວ້ໃນຕາລາງ. ຄ່າໝວດໝູ່ຢູ່ລະຫວ່າງ 0-255
ຕ້ອງການ 1 ໄບຕ໌ຕໍ່ເຊລ, ໃນຂະນະທີ່ຄ່າໝວດໝູ່ຢູ່ໃນລະດັບ 256-65535 ຕ້ອງການ 2 ໄບຕ໌, ແລະ
ຄ່າໝວດໝູ່ໃນໄລຍະທີ່ສູງກວ່າ 65535 ຕ້ອງການ 3 (ຫຼືຫຼາຍກວ່າ) ໄບຕ໌ຕໍ່ຕາລາງ.
ໄດ້ ຕົກຕໍ່າ ຮູບແບບແຜນທີ່ raster ກົງກັບຮູບແບບແນວຄວາມຄິດ. ຕົວຢ່າງ, raster
ແຜນທີ່ທີ່ມີເຊລ 1 ໄບຕ໌ທີ່ເປັນ 100 ແຖວທີ່ມີ 200 ເຊລຕໍ່ແຖວ, ປະກອບດ້ວຍ 20,000 ໄບຕ໌.
ແລ່ນຄໍາສັ່ງ UNIX ls -l ໃນໄຟລ໌ນີ້ຈະສະແດງຂະຫນາດ 20,000. ຖ້າຈຸລັງແມ່ນ
2 byte cells, ໄຟລ໌ຕ້ອງການ 40,000 bytes. ຄ່າໝວດໝູ່ຊັ້ນແຜນທີ່ເລີ່ມຕົ້ນ
ກັບຈຸລັງມຸມຊ້າຍເທິງຕິດຕາມດ້ວຍຈຸລັງອື່ນໆຕາມຊາຍແດນທາງເຫນືອ.
byte ຕໍ່ byte ສຸດທ້າຍຂອງແຖວທໍາອິດນັ້ນແມ່ນຕາລາງທໍາອິດຂອງແຖວທີສອງຂອງ
ຄ່າປະເພດ (ຍ້າຍຈາກຊ້າຍໄປຂວາ). ບໍ່ມີເຄື່ອງໝາຍທ້າຍແຖວ ຫຼື ອື່ນໆ
ການຊິງຄ໌ລະຫັດໃນແຜນທີ່ raster. ໄຟລ໌ຫົວຕາລາງ (cellhd) ຖືກນໍາໃຊ້ເພື່ອກໍານົດວິທີການນີ້
string ຂອງ bytes ຖືກແຍກອອກເປັນແຖວຂອງຄ່າປະເພດ.
ໄດ້ ບີບອັດ ຮູບແບບ RLE ແມ່ນບໍ່ງ່າຍດາຍ, ແຕ່ຂ້ອນຂ້າງສະຫງ່າງາມໃນການອອກແບບຂອງມັນ. ມັນບໍ່ແມ່ນ
ພຽງແຕ່ຕ້ອງການພື້ນທີ່ disk ຫນ້ອຍເພື່ອເກັບຂໍ້ມູນ raster, ແຕ່ມັກຈະສາມາດເຮັດໃຫ້ໄວຂຶ້ນ
ການປະຕິບັດຂອງໂຄງການຮູບພາບແລະການວິເຄາະເນື່ອງຈາກວ່າມີ disk I/O ຫນ້ອຍ. ມີສອງ
ຮູບແບບ RLE ທີ່ຖືກບີບອັດ: ຮູບແບບ pre-version 3.0 (ເຊິ່ງໂປຣແກມ GRASS ສາມາດອ່ານໄດ້ແຕ່ບໍ່ມີ.
ການຜະລິດຕໍ່ໄປອີກແລ້ວ), ແລະຮູບແບບ 3.0 (ເຊິ່ງຖືກນໍາໃຊ້ໂດຍອັດຕະໂນມັດເມື່ອ raster ໃຫມ່
ຊັ້ນແຜນທີ່ຖືກສ້າງຂື້ນ).
PR-3.0 ຮູບແບບ:
3 bytes ທໍາອິດ (chars) - ເຫຼົ່ານີ້ແມ່ນລະຫັດພິເສດທີ່ກໍານົດຂໍ້ມູນ raster ເປັນ
ຖືກບີບອັດ.
array ທີ່ຢູ່ (ຍາວ) - array (ຂະຫນາດຂອງຈໍານວນແຖວ + 1) ຂອງທີ່ຢູ່ຊີ້ໄປຫາ.
ການເລີ່ມຕົ້ນພາຍໃນຂອງແຕ່ລະແຖວ. ເນື່ອງຈາກວ່າແຕ່ລະແຖວອາດຈະເປັນຂະຫນາດທີ່ແຕກຕ່າງກັນ, array ນີ້ແມ່ນ
ມີຄວາມຈໍາເປັນເພື່ອສະຫນອງແຜນທີ່ຂອງຂໍ້ມູນ.
ແຖວຕໍ່ແຖວ, ເລີ່ມຕົ້ນຢູ່ຂອບທາງເໜືອຂອງຂໍ້ມູນ, ຊຸດຂອງກຸ່ມ byte ອະທິບາຍ
ຂໍ້ມູນ. ຈໍານວນ bytes ໃນແຕ່ລະກຸ່ມແມ່ນຈໍານວນ bytes ຕໍ່ຕາລາງບວກຫນຶ່ງ.
ໄບຕ໌ທຳອິດຂອງແຕ່ລະກຸ່ມໃຫ້ຈຳນວນ (ເຖິງ 255) ຂອງຈຳນວນເຊລທີ່ບັນຈຸ
ຄ່າປະເພດທີ່ໃຫ້ໂດຍ bytes ທີ່ຍັງເຫຼືອຂອງກຸ່ມ.
POST-3.0 ຮູບແບບ:
ລະຫັດ 3 byte ບໍ່ໄດ້ຖືກນໍາໃຊ້. ແທນທີ່ຈະ, ຊ່ອງຂໍ້ມູນຢູ່ໃນສ່ວນຫົວຂອງຕາລາງແມ່ນໃຊ້ເພື່ອຊີ້ບອກ
ຮູບແບບການບີບອັດ.
array ທີ່ຢູ່ແມ່ນຄືກັນ.
ຮູບແບບ RLE ແມ່ນຄືກັນກັບ pre-3.0 RLE, ຍົກເວັ້ນແຕ່ລະແຖວຂອງຂໍ້ມູນຈະຖືກນໍາໜ້າໂດຍ
byte ດຽວທີ່ມີຈໍານວນ bytes ຕໍ່ຕາລາງສໍາລັບແຖວ, ແລະຖ້າ
run-length-encoding ແຖວຈະບໍ່ຕ້ອງການພື້ນທີ່ໜ້ອຍກວ່າ non-run-length-encoding,
ຫຼັງຈາກນັ້ນ, ແຖວບໍ່ໄດ້ຖືກເຂົ້າລະຫັດ.
ການປັບປຸງເຫຼົ່ານີ້ໃຫ້ການບີບອັດດີກວ່າຮູບແບບ pre-3.0 ໃນ 99% ຂອງ raster
ຊັ້ນຂໍ້ມູນ. ປະເພດຂອງຊັ້ນຂໍ້ມູນ raster ທີ່ໃຫຍ່ກວ່າແມ່ນຢູ່ໃນແຕ່ລະແຖວ
ຈະໃຫຍ່ກວ່າຖ້າຖືກບີບອັດ (ເຊັ່ນ: ໄຟລ໌ແຖບຮູບພາບ). ແຕ່ເຖິງແມ່ນວ່າໃນກໍລະນີນີ້
ຊັ້ນຂໍ້ມູນ raster ຈະໃຫຍ່ກວ່າໂດຍຂະໜາດຂອງອາເຣທີ່ຢູ່ ແລະອັນດຽວເທົ່ານັ້ນ
byte ກ່ອນແຕ່ລະແຖວ.
ນັບຕັ້ງແຕ່ GRASS GIS 7.0.0, ວິທີການບີບອັດເລີ່ມຕົ້ນສໍາລັບແຜນທີ່ Integer (CELL) ແມ່ນ deflate.
ແລະບໍ່ແມ່ນການບີບອັດ RLE ອີກຕໍ່ໄປ.
ທໍາລາຍ compression ລະດັບ
ຖ້າຕົວແປສະພາບແວດລ້ອມມີ GRASS_ZLIB_LEVEL ແລະຄ່າຂອງມັນສາມາດຖືກວິເຄາະເປັນ
integer, ມັນກໍານົດລະດັບການບີບອັດທີ່ໃຊ້ໃນເວລາທີ່ແຜນທີ່ raster ທີ່ສ້າງຂຶ້ນໃຫມ່
ບີບອັດໂດຍໃຊ້ zlib compression. ນີ້ໃຊ້ກັບທຸກປະເພດແຜນທີ່ raster (CELL, FCELL,
DCELL).
ຖ້າຕົວແປບໍ່ມີ, ຫຼືຄ່າບໍ່ສາມາດແຍກເປັນຈໍານວນເຕັມ, zlib's
ລະດັບການບີບອັດເລີ່ມຕົ້ນຈະຖືກໃຊ້.
ຕົວຢ່າງ
ການພິມສະຖານະການບີບອັດປັດຈຸບັນ:
r.compress compressed_no -p
(ລະດັບ 0: NONE). ປະເພດຂໍ້ມູນ:
ນຳໃຊ້ການບີບອັດ RLE ກັບສຳເນົາຂອງແຜນທີ່ທີ່ບໍ່ໄດ້ບີບອັດ:
# ການບີບອັດແຜນທີ່ໂດຍໃຊ້ການບີບອັດ RLE
g.copy raster=compressed_no,compressed_RLE
ສົ່ງອອກ GRASS_INT_ZLIB=0 # RLE
r.compress compressed_RLE
r.compress compressed_RLE -p
ຖືກບີບອັດ (ລະດັບ 1: RLE). ປະເພດຂໍ້ມູນ:
ບໍ່ໄດ້ຕັ້ງ GRASS_INT_ZLIB
ນຳໃຊ້ການບີບອັດ DEFLATE (ZLIB) ກັບສຳເນົາຂອງແຜນທີ່ທີ່ບໍ່ໄດ້ບີບອັດ:
# ການບີບອັດແຜນທີ່ໂດຍໃຊ້ການບີບອັດ DEFLATE
g.copy raster=compressed_no,compressed_DEFLATE
ສົ່ງອອກ GRASS_INT_ZLIB=1 # deflate
r.compress compressed_DEFLATE
r.compress compressed_DEFLATE -p
ຖືກບີບອັດ (ລະດັບ 2: DEFLATE). ປະເພດຂໍ້ມູນ:
ບໍ່ໄດ້ຕັ້ງ GRASS_INT_ZLIB
ໃຊ້ r.compressgrass ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net