Мне нужно объединить около 550 Гб изображений TIF вместе, и программное обеспечение, которое я пробовал, продолжает работать. Область была разделена на зоны, так что наименьшая имеет около 200 плиток.
Я использовал последние версии ERDAS (Imagine and Mapper), ArcINFO и Global Mapper на 3,30 ГГц Intel Xeon E31245, DELL, 16 ГБ оперативной памяти, 64-разрядной версии Win 7 Professional. Многоядерный (всего 4), Гиперпоточный (всего 8). Мой C имеет 700 ГБ свободного и D имеет 1,5 ТБ.
Я изучаю использование Grass (никогда раньше), но i.image.mosaic, кажется, обрабатывает только 4 файла ... некоторые из моих имеют 600 плиток. Любые другие варианты или программное обеспечение с открытым исходным кодом, чтобы попробовать?
Извините, следует добавить, что мы не можем использовать набор данных мозаики (или эквивалент в другом программном обеспечении), так как нам нужно создавать зоны с определенными областями без данных в виде ecw, чтобы их можно было открывать в любом программном обеспечении ГИС и объединять с более низким разрешением / более старым данные, когда новые данные не существуют без проблем.
Пример того, как некоторые мозаичные файлы выглядят в разных программах. Global Mapper / ERDAS - это хорошо, но это не правильно в arcgis.
--- более старая информация ---
Извините за грубый рисунок. Таким образом, наличие цветных областей в виде 5 зон минимизирует области без данных в более крупном AOI.
В arcgis код выглядит следующим образом (он запускается как модель, а не в python, так как я не могу получить его для ввода tifList).
arcpy.MosaicToNewRaster_management(tifList+";" +mask,RootOutput,"Tile1.tif","PROJCS['GDA_1994_MGA_Zone_55',GEOGCS['GCS_GDA_1994',DATUM['D_GDA_1994',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',10000000.0],PARAMETER['Central_Meridian',147.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]]","16_BIT_UNSIGNED","0.5","3","MAXIMUM","#")
# Replace a layer/table view name with a path to a dataset (which can be a layer file) or create the layer/table view within the script
# The following inputs are layers or table views: "test2"
arcpy.CopyRaster_management(OutputFile,RootOutput+"Tile1b.tif","#","256","256","NONE","NONE","16_BIT_UNSIGNED")
где tifList должен быть прочитан из CSV-файла, но это не работает в Python, поэтому я запускаю выше в модели вместо ...
У меня есть 1,5 ТБ + свободного места на диске, но процесс завершается с ошибкой 9999.
Будет ли обрабатываться даже 100 плиток? -должны ли мы смотреть на разделение зон дальше?
Ответы:
Мне понадобятся предложения 2nd @ blah238 об использовании другого метода доступа к данным, кроме создания одного мозаичного изображения. Простое предположение скажет, что нет рабочего стола, который мог бы обрабатывать объем данных, которые вам нужно было бы обработать, чтобы создать мозаику для всех этих плиток.
Чтобы сломать это, есть, вероятно, два места, где вам не хватает места.
Теперь о других решениях. Как упомянуто в комментариях выше, есть возможность создать набор данных мозаики . Этот набор данных позволит вам не только обрабатывать все отдельные листы как одно бесшовное изображение, но и поддерживать метаданные об отдельных листах, содержащихся в нем. Это также позволяет вам выполнять растровые операции, такие как Hillshade .
Другой вариант, который я бы порекомендовал, основываясь на вашем комментарии о желании разделить зоны, - создать каталог растров . Растровый каталог - это, по сути, групповой слой. Вы можете добавить несколько наборов растровых данных к нему. Они могут управляться в базе геоданных и импортировать растры, или просто создать неуправляемый набор данных, где каталог растров поддерживает пути к исходным наборам растровых данных. Когда вы загружаете этот слой в ArcMap, вы можете настроить свойства отображения таким образом, чтобы загружать только определенное количество растровых плиток одновременно, или установить масштаб и разрешение отображения.
В настоящее время я использую каталог растров для создания набора аэрофотоснимков размером более 100 ГБ. Производительность очень хорошая. Если вы ищете другой тип хранилища данных просто для управления большим количеством плиток, то я очень рекомендую это.
Вот код, который можно использовать для создания каталога растров, а затем импортировать в него рабочее пространство плиток :
Надеюсь это поможет!
------------- Редактировать
Вот график плиток, обработанных моим растровым каталогом. Обратите внимание, что вы можете выбрать отображение каркасов или растровые данные. В каталоге растров есть таблица атрибутов, в которую можно добавлять поля, например, если вы хотите добавить обозначения зон, как на графике. Затем вы можете выбрать отображение этих растров только в определенной зоне.
При печати графики из макета используется полное разрешение растров, поэтому качество печати не ухудшается.
Вот тот же график, но показывающий некоторые растровые данные вместе с некоторыми каркасами.
источник
Я знаю, что я опоздал на вечеринку. Но вот мое предложение.
1) размер изображения.
Если ваши 550 ГБ оригиналы распакованы, вы должны конвертировать их в сжатые файлы формата JPEG в формате TIFF. Храните их индивидуально (не объединяйте). Вы можете сжимать, используя arcgis, gdal, что угодно. Сжатие даст вам около 23 ГБ. Пока не создавайте пирамиды / обзоры. Для сжатия вы можете использовать любую программу gis, которая вам нравится, но мне нравится использовать gdal, поэтому команда в основном такова:
Вы можете легко создать файл bat, который проходит через все ваши несжатые файлы. Мне нравится использовать gdalwarp для сжатия моих изображений вместо обычного gdal_translate, потому что он быстрее (с использованием параметра multi для многоядерных и -wm для большого количества памяти).
2) обработка одного изображения.
Вы можете создать «виртуальную» мозаику, используя формат gdal vrt. Это совместимо с arcgis, qgis, mapserver и т. Д. Не уверен насчет глобального картографа и mapinfo. Формат .vrt - это всего лишь один XML-файл со списком ваших изображений. Это единственная команда для создания:
Этот файл имеет размер несколько кб.
3) ускорение визуализации.
Вы должны строить пирамиды / обзоры. Просто используйте предпочитаемое программное обеспечение для этого. Хранить с помощью инструментов GDAL вы можете:
Это займет много времени. Будьте готовы ждать 2-3 дня безостановочной обработки.
4) Использование мозаики
Загрузите виртуальную мозаику в вашу ГИС-программу. Это будет быстро, потому что он читает обзоры, которые находятся в одном файле, как ecw. Когда вы приближаетесь к реальному разрешению ваших изображений, тогда будут считываться только несколько видимых изображений из сжатых изображений, и это тоже очень быстро.
5) обработка областей без данных, которые отображаются черным цветом. Для этого
есть 3 решения: i) использовать формат файла, который обрабатывает нодаты, что будет сложно; или ii) использовать альфа-полосу или iii) файл маски. Вы можете автоматически создать альфа-полосу на шаге 2, сказав GDAL, что вы хотите, чтобы области нодаты были в альфа-полосе - вы просто добавляете опцию -addalpha:
Проблема с альфа-полосами в том, что они плохо сжимаются. Так что ваши обзоры будут больше. Если с тобой все в порядке, то все готово.
Если вы хотите создать файл маски, то это немного сложнее. И я считаю, что это не вписывается в настоящий вопрос.
Надеюсь, это поможет. Вы можете найти информацию об инструментах GDAL, прибегая к помощи Google. Много интересных вещей вокруг.
источник
gdal_translate -co compress=xxx
после него. Это не проблема, если используется только как переводчик (как предлагается здесь).550 ГБ входных данных TIF легко обрабатываются одним файлом ECW. У нас много клиентов, которые сжимают гораздо большие наборы данных, чем этот, поэтому, пожалуйста, не думайте, что формат не подходит для этой области.
Ваша стратегия разделения проекта на маленькие фрагменты для минимизации нулевой области также является хорошим подходом для текущей версии формата, так как это сократит время сжатия
Ваш пример включает ссылку на 16-битные входные данные без знака. Я бы порекомендовал изменить масштаб на 8 бит, если это возможно (в зависимости от ваших требований)
Пожалуйста, уточните, почему вы не смогли обработать свой проект с помощью IMAGINE или ERMapper, поскольку без этой информации я не смогу вам помочь. Или еще лучше обратитесь в местную службу поддержки
Имейте в виду, что при использовании формата набора данных мозаики ESRI в ответах выше не упоминается требование создания слоя пирамиды / обзора. Без этого производительность значительно пострадает. Скорее всего, вы можете создать файлы, эквивалентные ECW, за то же время, но с улучшенным качеством изображения и значительно меньшими требованиями к объему памяти.
источник
Хотя явно лучше использовать один из других упомянутых вариантов, вы можете попробовать следующее:
Это создает виртуальный формат GDAL и затем конвертируется в один GeoTiff.
источник
Это звучит довольно знакомо для меня, мы также производим большие одиночные файлы ECW из 500 и 1 ТБ файлов TIF. Но я не продержусь в ArcGIS (ArcObjects и Geoprocessing Engine), так как он не может надежно составить мозаику этого количества. Если вы хотите остаться в ESRI World, я бы порекомендовал мозаичные фрагменты размером около 50 ГБ или даже меньше сразу в набор растровых данных, хранящийся в файловой базе геоданных. Инструмент мозаики через некоторое время имеет тенденцию падать, поэтому хорошей идеей будет позволить ArcGIS освободить память после нескольких гигабайт.
Другая возможность - использовать базу геоданных Enterprise или Workgroup SDE. С SDE вы получаете старомодные инструменты командной строки SDE, которые построены на надежной архитектуре C ++, отличной от ненадежных вещей ArcObjects. С помощью команды "sderaster -o mosaic ..." вы можете создавать мозаику в наборе RasterDataset до тех пор, пока хранилище базы данных не будет заполнено. Существуют также команды для построения пирамид и статистики для RasterDataset, в противном случае это не очень полезно, потому что большинство клиентов не могут хранить изображения в памяти при чтении, как упомянуто выше. Но Пирамиды (фактически пространственная индексация) должны решить эту проблему.
Но эти решения не помогут вам с MapInfo наверняка. Вы упомянули, что уже пробовали ERDAS Mapper. Это также инструмент, который я бы предпочел. Мы уже создали мозаику 16000 TIF-файлов, каждый из которых имеет размер 50 МБ, что составляет 800 ГБ. Затем мы сжали его до одного ECW с коэффициентом сжатия 1:20, в результате чего был получен файл ECW 30 ГБ. Мне интересно, что это не работает для вас ...
По крайней мере, весь процесс работал на одноядерном процессоре Pentium 4 с частотой 1,6 ГГц и 2 ГБ оперативной памяти, поэтому проблема с оборудованием не должна быть. Мы используем Windows Server 2003 (или другую серверную операционную систему), потому что она лучше использует аппаратные ресурсы. Имейте в виду, что весь процесс сжатия требует много времени. Наша машина работала около 5 недель над этим единственным файлом, и из-за того, что он иногда также ломался, нам пришлось делать это несколько раз, но в итоге мы получили наш файл ECW.
Я не знаю другой системы или механизма для хранения большого количества растров в основном независимым от производителя способом. Все вышеперечисленные способы очень специфичны для ESRI. По крайней мере, с Oracle RASTER и довольно похожей реализацией в PostGIS, есть два варианта на основе данных, которые также не зависят от поставщика, но открыты через интерфейс SQL / MM.
Надеюсь, это поможет немного.
источник