ประสิทธิภาพของกระบวนการสร้างไทล์แผนที่ google


11

ฉันรู้ว่าคำถามนั้นค่อนข้างคลุมเครือ แต่โปรดรับด้วยฉัน ฉันกำลังพยายามทำความเข้าใจเกี่ยวกับประสิทธิภาพของผลิตภัณฑ์ - ช่วงเวลาเฉพาะ - ผู้คนเคยเห็นวิธีการต่าง ๆ ที่พวกเขาเคยใช้ในการสร้างไทล์แผนที่ของ Google / bing มีวิธีการมากมายในการทำเช่นนี้ (เช่น gdal2tiles, FME, maptiler เป็นต้น) ความพยายามเริ่มต้นที่เพียงแค่ใช้ PNG ขนาดใหญ่และสร้างไทล์โดยใช้ imagemagick บนเซิร์ฟเวอร์ลินุกซ์ที่น่ารักทำให้ได้เวลาในการประมวลผลที่ค่อนข้างยาว กระเบื้องใหม่จะต้องมีการสร้างอย่างน้อยทุกวันและเวลาตอบสนองดังนั้นสิ่งนี้จึงสำคัญมาก

ความต้องการที่แท้จริงเพียงอย่างเดียวคือมันสามารถทำงานบนเซิร์ฟเวอร์ลินุกซ์ เห็นได้ชัดว่าฟรีดีกว่า แต่ฉันไม่ต้องการ จำกัด ตัวเอง อินพุตอาจเป็นข้อมูล gridded / raster แบบดิบหรือภาพขนาดใหญ่ ผลลัพธ์จะต้องเป็นไทล์รูปภาพที่สามารถใช้งานได้เหมือนใน google หรือ bing maps

เพียงเพื่อการเปรียบเทียบฉันจะบอกว่าการกำหนดเวลาควรเป็นระดับการซูม 7 ของแผนที่ของ Google

ฉันซาบซึ้งในความช่วยเหลือของทุกคนและฉันอยากจะขอโทษอีกครั้งสำหรับคำถามที่คลุมเครือ

อัปเดต: เท่าที่มีการป้อนข้อมูลฉันมีแหล่งข้อมูลหลาย (ดิบ) ในรูปแบบต่าง ๆ : netCDF, GRIB, GRIB2 นอกเหนือจากข้อมูลดิบเองแล้วฉันยังมีความสามารถในการสร้างภาพขนาดใหญ่ของข้อมูลนั้นซึ่งสามารถถูกตัดเป็นแผ่น / กระเบื้อง

เป็นการดีที่ฉันจะสับภาพขึ้น แต่ฉันยินดีที่จะลองสิ่งที่จะทำให้ฉันได้ผลลัพธ์ที่เร็วที่สุด


ขอแนะนำให้คุณใช้ดอกไม้ไฟ Adobe สำหรับการปรับภาพขั้นสุดท้ายที่คุณใช้อย่างดีที่สุด - adobe.com/products/fireworks - แม้ส่งออกจาก Photoshop และปรับให้เหมาะสมใน Fireworks ลดขนาดไฟล์ลงสูงสุด 75% (png)
Mapperz

@ Mapperz- ให้รายละเอียดเกี่ยวกับ "ปรับให้เหมาะสมในดอกไม้ไฟ"
Derek Swingley

ฉันคิดว่าคุณต้องขยายการป้อนข้อมูลของคุณและหากต้องการการประมวลผลเพิ่มเติมหรือหากคุณเพียงแค่ตัดมัน
Ian Turton

4
@Mapperz: เทียบเท่าฟรีคือ pngcrush และ pngnq สำหรับ quantization - ขณะนี้ฉันทำงานที่คล้ายกันและมีห่วงโซ่อัตโนมัติ gdal2tiles> pngnq> pngcrush> การสร้างภาพขนาดย่อไว้ล่วงหน้าโดยใช้ imagemagick สำหรับไฟล์ทุกไฟล์ที่ป้อนเข้าสู่ระบบ - ฉันไม่สามารถอ้างว่ามันเร็ว แต่ระบบอัตโนมัติใช้ภาระจำนวนมาก . และในกรณีของฉันไม่มีการอัพเดตมันเป็นไฟและลืม
relet

1
@relet - เวลาใดที่คุณสามารถผ่านไปได้ การตั้งค่าฮาร์ดแวร์ของคุณสำหรับสิ่งนี้คืออะไร? ขอบคุณ
malonso

คำตอบ:


3

นี่คือผลการค้นหาของฉันสำหรับไฟล์แรสเตอร์ต่อไปนี้:

JPEG 14456x14490 14456x14490+0+0 DirectClass 62mb

$ time gdal2tiles [... ]

Generating Base Tiles:
0...10...20...30...40...50...60...70...80...90...100 - done.
Generating Overview Tiles:
0...10...20...30...40...50...60...70...80...90...100 - done.

real    5m7.675s
user    5m5.070s
sys  0m2.060s

$ time [pngnq && pngcrush สำหรับทุกกระเบื้องรวม 4500]

real    9m32.827s
user    18m34.190s
sys  0m27.230s

ใช่นั่นคือไม่กี่นาที - ฉันปรับขนาดเอาท์พุตไม่ใช่ความเร็ว ตัวเครื่องเป็นเสมือน Intel Xeon 2x3GHz, หน่วยความจำ 4G (และเห็นได้ชัดว่า gdal2tiles สามารถใช้ประโยชน์จากการขนานกันได้)


เป็นไฟล์ตัวอย่างสำหรับดาวน์โหลด ฉันอยากจะเปรียบเทียบประสิทธิภาพกับmaptiler.com
Klokan Technologies GmbH

ขออภัยฉันเปลี่ยนงานในระหว่างนี้ ฉันอาจจะหาตำแหน่งที่ไทล์ถูกเผยแพร่ แต่ไม่ใช่ไฟล์ดั้งเดิม
relet

6

ฉันมีปัญหากับgdal2tilesการใช้เวลาสักครู่ในการประมวลผลภาพขนาดใหญ่ (380MB, 39K x 10K พิกเซล) ที่มีขนาดค่อนข้างใหญ่ในไทล์ Google สำหรับช่วงซูม 0-12 บน Ubuntu 12.04 64 บิตโดยไม่มีการประมวลผลหลายขั้นตอนใช้เวลาเกือบทั้งวัน (8 ชั่วโมง) ในการประมวลผล tiff ให้เป็น 1.99 ล้านไทล์ที่ @ 3.3GB เช่นเดียวกับ @Stephan Talpalaru ที่กล่าวถึงข้างต้นการgdal2tiles ทำงานแบบขนานเป็นกุญแจสำคัญ ทำการสำรองข้อมูลต้นฉบับของคุณgdal2tiles.pyจากนั้นติดตั้งโปรแกรมแก้ไขจากภายในไดเรกทอรีที่เป็นที่อยู่gdal2tiles.pyของฉัน/usr/local/bin:

$ sudo patch -p0 -i gdal2tiles_parallelize_base_and_overview_tiles.patch

ตอนนี้ทำงานgdal2tilesเหมือนที่คุณทำตามปกติ ฉันได้รับประสิทธิภาพที่เพิ่มขึ้นอย่างไม่น่าเชื่อโดยมีคอร์ทั้งสี่ของฉัน (Intel Core i7 3.4GHz) pegged:

$ time gdal2tiles.py -p raster -z 0-12 -w none ds1105-2235df023_23_b.tif gdal-tiles12
Generating Base Tiles:
0...10...20...30...40...50...60...70...80...90...100 - done.
Generating Overview Tiles:
0...10...20...30...40...50...60...70...80...90...100 - done.

real    39m8.242s
user    104m6.808s
sys 9m16.036s

ดังนั้นจาก ~ 8 ชั่วโมง39 นาที ตัวเปลี่ยนเกม


5

ลองใช้เวอร์ชันขนานของ gdal2tiles.py: http://trac.osgeo.org/gdal/ticket/4379


1
คุณประสบความสำเร็จในการรันเวอร์ชันขนานบน Windows หรือไม่? ฉันได้รับข้อผิดพลาดการเข้าถึงไฟล์ในไฟล์ temp ที่สร้างขึ้น
Michalis Avraam

2

คุณพูดถึง FME และมีตัวเลขจำนวนหนึ่งในการสร้างไทล์แผนที่บน FMEpedia

มันเป็นบทความยาวดังนั้นฉันจึงดึงส่วนที่เกี่ยวข้องออก:

Level             Tiles           Minutes (hours)
    8            24,500           18 (0.3)
   10           245,000          105 (1.75)
   11         1,000,000          384 (6.4)

นี่ใช้กระบวนการหลายเครื่องกับเซิร์ฟเวอร์ FME คุณสามารถตรวจสอบโพสต์นี้โดย Paul Bissett บนบล็อก WeoGeo: http://www.weogeo.com/blog/Scaling_FME_Engines_on_WeoGeo.html

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

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