ชุดแปลง GeoTIFF เป็นไฟล์ KMZ


11

ฉันมีไฟล์แผนที่ GeoTIFF ประมาณ 600 ไฟล์แต่ละไฟล์มีขนาดประมาณ 140 mb ที่ฉันต้องการแปลงเป็นไฟล์ KMZ เพื่อให้ผู้คนสามารถดาวน์โหลดและใช้กับหน่วย Garmin GPS, Google Earth และอื่น ๆ

ใครรู้วิธีง่ายๆในการประมวลผลชุดเหล่านี้โดยเฉพาะอย่างยิ่งการแปลงภาพ TIFF เป็นภาพ jpeg ขนาดเล็กมากเป็นส่วนหนึ่งของกระบวนการ?

ฉันสะดุดกับgdal_translateซึ่งฉันคิดว่าอาจเป็นประโยชน์ในการปรับภาพให้เล็กลงโดยใช้ตัวเลือก "-co COMPRESS = JPEG"


ดูเหมือนว่าG-Rasterอาจให้ฉันทำไฟล์ต่อไฟล์
กาวิน

Global Mapper ก็ดูมีความสามารถเช่นกัน แต่ค่อนข้างแพงเพราะฉันจะไม่ทำกำไรจากคนที่ดาวน์โหลดไฟล์ KMZ
กาวิน

OkMapสร้างผลลัพธ์ที่ดี แต่ขาดตัวเลือกการประมวลผลชุดที่มีประโยชน์อีกครั้ง
กาวิน

1
หากรูปภาพมีขนาดใหญ่คุณจะต้องเรียงต่อกันไม่เกิน 1 เมกะพิกเซลคุณต้องไม่เกิน 100 ไทล์ภายใน KMZ เดียวกันเพื่อให้อุปกรณ์พกพาของ Garmin ยอมรับว่าเป็นแผนที่ที่กำหนดเอง มันจะต้องอยู่ใน WGS84 lat lat ดูฟอรัม garminสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการสนับสนุน Garmin KMZ
Stefan

ในที่สุดฉันก็เสร็จสิ้นกระบวนการด้วยตนเองโดยใช้ OkMap ขอบคุณสำหรับความคิดเห็นของทุกคน
กาวิน

คำตอบ:


15

gdal_translate เวอร์ชันล่าสุดมีการสนับสนุน KML Superoverlay แม้ว่าจะยังไม่ได้บันทึกไว้ในเว็บไซต์ GDAL คุณสามารถใช้งานได้ดังต่อไปนี้:

gdal_translate.exe - จาก KMLSUPEROVERLAY c: \ in.tif c: \ out.kmz -co FORMAT = JPEG

สิ่งนี้จะบันทึกเวอร์ชันแบบเรียงต่อกันในไฟล์ kmz โดยใช้การบีบอัด jpeg

บน windows คุณสามารถใช้โดยอัตโนมัติ

forfiles / m * .tif / c "cmd / c gdal_translate.exe - จาก KMLSUPEROVERLAY @FILE @ FNAME.kmz -co FORMAT = JPEG"

สิ่งนี้ถือว่าไฟล์อินพุตอยู่ใน WGS84


1
น่าเสียดายที่ฉันเพิ่งค้นพบว่า KMZ ที่ผลิตนั้นไม่ใช่ไฟล์ KMZ ที่ใช้งานร่วมกับ Garmin Custom Map ได้
กาวิน

คุณรู้หรือไม่ว่าทำไมไม่รองรับ
อดัมมิลส์

โครงสร้างของ SuperOverlay นั้นแตกต่างกัน มันคือ kmz ที่มีทั้ง kmz อยู่ในนั้น รูปแบบ Garmin เป็น kmz ที่มีโฟลเดอร์ไฟล์ jpg และ doc.kml ที่อธิบายขอบเขตของ jpg ไม่มีความคิดว่าทำไมมีโครงสร้างทางเลือก แต่โดยส่วนตัวแล้วฉันพบว่าตัวล้างฟอร์แมต Garmin ... ซึ่งแปลกเพราะฉันเกลียดโครงสร้างข้อมูล Garmin ส่วนใหญ่
Mike

@Gavin คุณเคยพบวิธีแก้ปัญหาหรือไม่? ฉันพบสิ่งที่ฉันเชื่อว่าเป็นปัญหาเดียวกันดูคำถามนี้
gerrit

@gerrit ขออภัยไม่ มันอยู่ในรายการสิ่งที่ฉันจะดูอีกครั้งในไม่ช้า
กาวิน

0

หากไฟล์ Geotiff มีขนาด 140 เมกะไบต์ไฟล์ jpg ที่ได้อาจยังคงค่อนข้างใหญ่ อาจเป็นเรื่องที่น่าสนใจที่จะแยกไฟล์ออกเป็นไฟล์เล็ก ๆ เพื่อให้สามารถแสดงได้ง่ายขึ้น คุณสามารถลองใช้ไฟล์เดียวโดยใช้http://www.maptiler.org/ซึ่งมีตัวเลือกในการสร้าง KML Superoverlay MapTiler อาจไม่เหมาะสมในการประมวลผลแบตช์ไฟล์ทั้งหมด แต่ใช้งานง่ายเพื่อให้ทำการทดสอบเบื้องต้นได้ดี

หากการทำงานตามที่คุณต้องการแล้วคุณสามารถลองกระบวนการ batch ไฟล์ทั้งหมดที่ใช้GDAL2Tiles ฉันยังไม่ได้ลอง แต่ฉันคิดว่ามันน่าจะเป็นไปได้เพราะ MapTiler ใช้ GDAL2Tiles


OkMapทำเช่นนี้ - ใช้ GeoTIFF แล้วแยกเป็นรูปภาพขนาดเล็กจำนวนมากเพื่อใช้ในไฟล์ KMZ gdal2tiles เป็นเครื่องมือที่มีประโยชน์ - เพียงแค่หาวิธีสร้าง kmz จากมันไม่ได้ จะเล่นเพิ่มเติมบางส่วน
กาวิน

OkMap เป็นของใหม่สำหรับฉัน มันจะได้ดูมันดูเหมือนว่าจะเป็นโปรแกรมที่น่าสนใจ
ชื่อ

gdal2tiles เกือบจะอยู่ที่นั่นแล้ว แต่OkMapให้ผลลัพธ์ที่ยอดเยี่ยมกว่ามาก OkMap คำนวณขนาดของกระเบื้องเพื่อแยกภาพต้นฉบับได้อย่างมีประสิทธิภาพช่วยให้กระเบื้องสี่เหลี่ยมแทนที่จะเป็นกระเบื้องสี่เหลี่ยมเพื่อหลีกเลี่ยงพื้นที่โปร่งใสเป็นพิเศษ ฉันสงสัยว่าฉันสามารถใช้อัตโนมัติ / บรรทัดคำสั่ง OkMap เพื่อแบทช์ประมวลผลไฟล์ของฉัน
กาวิน

0

ฉันไม่เคยใช้ภาพใน KML แม้ว่าจะดูเหมือนว่าgdal2tiles.pyอาจช่วยได้ การแปลงชุดสามารถทำได้หลายวิธีขึ้นอยู่กับระบบปฏิบัติการ ใน Windows ที่ใช้คำสั่ง CMD: เส้นทาง DIR > yourfile .txt (สร้างรายการไฟล์ของคุณ) นำเข้า. txt ใน Excel / OpenOffice ทำความสะอาดและเพิ่มไวยากรณ์สำหรับ GDAL บันทึกเป็น filename.bat และเรียกใช้จากบรรทัดคำสั่ง


ฉันคุ้นเคยและใช้ gdal2tiles เป็นประจำ แต่ฉันไม่แน่ใจว่าการตั้งค่าแบบไหนที่ฉันควรใช้ในการคาย kmz ความคิดใด ๆ
กาวิน

1
ฉันเดาว่าเป็นกรณีของการบีบอัด kml และรูปภาพจากนั้นเปลี่ยนชื่อไฟล์ zip เป็นส่วนขยาย kmz
กาวิน

แค่นั้นแหละ. หากคุณต้องการบีบอัดภาพของคุณคุณควรดูว่ามันเป็นประเภทข้อมูลชนิดใดและอาจเปลี่ยนเป็นหน่วยความจำที่มีประสิทธิภาพมากขึ้น
Tomek

gdal2tiles เกือบจะอยู่ที่นั่นแล้ว แต่OkMapให้ผลลัพธ์ที่ยอดเยี่ยมกว่ามาก OkMap คำนวณขนาดของกระเบื้องเพื่อแยกภาพต้นฉบับได้อย่างมีประสิทธิภาพช่วยให้กระเบื้องสี่เหลี่ยมแทนที่จะเป็นกระเบื้องสี่เหลี่ยมเพื่อหลีกเลี่ยงพื้นที่โปร่งใสเป็นพิเศษ ฉันสงสัยว่าฉันสามารถใช้อัตโนมัติ / บรรทัดคำสั่ง OkMap เพื่อแบทช์ประมวลผลไฟล์ของฉัน
กาวิน

0

นอกจากนี้ยังมีปลั๊กอิน QGIS เพื่อสร้างไฟล์. kmz จาก Canvas QGIS ของคุณสำหรับอุปกรณ์ Garmin มันเรียกว่าGarminCustomMap


0

ฉันโพสต์สคริปต์ python เพื่อใช้จาก ArcGIS ที่นี่:

การส่งออก 3GB ArcGIS Raster ไปยัง KML โดยไม่สูญเสียความละเอียด

รูปแบบที่แตกต่างกันรองรับจำนวนไพ่ที่แตกต่างกัน คุณต้องดูข้อ จำกัด นี้ขอบเขตของภาพที่คุณต้องการใช้และความละเอียดขั้นต่ำที่คุณต้องการใช้ จากนั้นคุณต้องสร้างหลายไฟล์จากภาพต้นฉบับของคุณประมวลผลแต่ละส่วนของภาพด้วยเครื่องมือสคริปต์และถ่ายโอนไฟล์จากแล็ปท็อปไปยัง GPS ตามที่คุณต้องการ (Garmin สนับสนุนเพียง 1 "แผนที่ที่กำหนดเอง" ในแต่ละครั้ง) . หลายรุ่นในแผนที่ * รองรับเฉพาะกระเบื้อง 1024 1024x1024 เท่านั้น โคโลราโดและมอนทาน่าสนับสนุนเพิ่มเติม ฉันทดลองเปลี่ยนขนาดไทล์เป็น 2048 x 2048 และดูเหมือนว่าจะยังคงใช้งานได้และยอมให้มีข้อมูลเพิ่มขึ้นอีกเล็กน้อย

ในกรณีของคุณฉันจะต่อภาพหลายกิ๊กและประมวลผลภาพขนาดใหญ่เหล่านี้และให้ผู้ใช้ย่อยใน Google Earth และบันทึก kmz ของพวกเขาเองจากที่นั่น แผนที่ที่กำหนดเองนั้นมีข้อ จำกัด อย่างมากเนื่องจาก Garmin ต้องการสนับสนุนรูปแบบ jnx ของพวกเขาและขายการสมัครสมาชิก Birdseye ให้กับคุณ .... หรือบังคับให้คุณแฮ็กอุปกรณ์ของพวกเขา


0

OkMap Desktop (เวอร์ชั่นเต็ม, รุ่นที่จ่ายเงินแล้ว) มีฟังก์ชั่นแบบแบ็ตช์สำหรับการสร้างไฟล์ KMZ ที่รองรับ Garmin Custom Map ดังนั้นตอนนี้ฉันกำลังใช้สิ่งนี้อยู่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.