ชุดแปลง 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.