Nano Hash - криптовалюты, майнинг, программирование

Как обновить тег GeoTiff с помощью привязки gdal python?

Я пытаюсь обновить определенное значение тега tiff, используя привязку GDAL python.

например, используя tiffinfo, я могу прочитать значение тегов с изображения, это примерно так:

Каталог TIFF со смещением 0x8 (8) Ширина изображения: 4172 Длина изображения: 3689 Ширина фрагмента: 256 Длина фрагмента: 256 бит/выборка: 8 Формат образца: целое число без знака Схема сжатия: JPEG Фотометрическая интерпретация: YCbCr Выборки/пиксели: 3 Планарная конфигурация: Одиночное изображение Тег самолета 33550: 60.000000 60.000000 0.000000 Tag 33922: 0.000000 0.000000 0.000000 5888440.000000,4880460.000000 0.000000 Tag 34735: 1 11 0,1,4,0,1,1,1025,0,1, 1,1026,34737,22,0,2049,34737,7,22,2054,0,1,9102,3072,0,1,32618,3076,0,1,9001

Я хочу обновить «Тег 33922» с другим значением без сохранения нового изображения. Но я не смог найти способ обновить значение тега в GDAL python API.

Я что-то пропустил, или это просто не поддерживается в привязке GDAL python?

Спасибо Джи


Ответы:


1

Спасибо cgohlke за то, что показал мне обертку libtiff на python. В итоге я написал код C#, используя LibTiff.Net API. Это выглядит примерно так:

using (Tiff image = Tiff.Open(filePaths[i], "a"))
{        
    image.SetDirectory(0);

    // read auto-registered tag 33922
    FieldValue[] value = image.GetField((TiffTag)33922);
    int count = value[0].ToInt();
    double[] array = value[1].ToDoubleArray();
    System.Console.Out.WriteLine("Tag 33922 value(s) are as follows:");
    System.Console.Out.WriteLine(string.Join(",", array));

    double[] newarray = { 0.5, 0.5, 0, array[3], array[4], array[5] };
    image.SetField((TiffTag)33922, 6, newarray);

    System.Console.Out.WriteLine("Tag 33922 value(s) have been updated to:");
    System.Console.Out.WriteLine(string.Join(",", newarray));

    // Write the information to the file
    image.CheckpointDirectory();
}
24.04.2012
  • Любая подсказка, находящая то же решение, но с использованием библиотеки Python Gdal? 23.04.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..