На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Александр Горбунов (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Александр Горбунов
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 ... 6 7 8 9 10 11 12 13 14 15 16 ... 38 След.
Как можно изменить матрицу высот ???
 
Средство для изменения матрицы высот имеется в Комплексе 3D анализа
http://www.gisinfo.ru/products/3danalysiscompl.htm
http://gisinfo.ru/download?id=7
Панель "Контроль и редактирование матриц высот" задача "Редактирование матрицы"
Изменено: Александр Горбунов - 10.02.2016 09:51:14
Не правильно сформированный MTW файл, В чем ошибка формирования файла.
 
Какими средствами Вы заполняли элементы матрицы ?

Вот пример создания матрицы качеств (MTQ), формат которой совпадает с форматом MTW.
Различие только в наличии палитры в файле MTQ.

Создание сделано с использованием API-средств (mtrapi.h)

void __fastcall TForm1::Button1Click(TObject *Sender)
{
COLORREF palette[64];

// Заполнение структуры параметров создаваемой матрицы качеств
BUILDMTW MtrParm;
memset(&MtrParm,0,sizeof(MtrParm));
MtrParm.StructSize = sizeof(MtrParm);
MtrParm.BeginX = 6160000;    // Начало матрицы  (юго-западный угол)
MtrParm.BeginY = 7415000;
MtrParm.Width  = 10000;      // Размеры матрицы
MtrParm.Height =  5000;
MtrParm.ElemSizeMeters = 20; // Размер элемента в метрах
MtrParm.ElemSizeBytes = 8;   // Размер элемента в байтах (тип double)
MtrParm.Scale = 100000;      // Масштаб матричной карты

// Создание файла матрицы качеств
HMAP hMtq = mapCreateMtq("Matrix.mtq", &MtrParm, 0, palette, 64);
if (hMtq == 0)
{
  ::MessageBox(0,"ОШИБКА СОЗДАНИЯ МАТРИЦЫ КАЧЕСТВ","MTQ Creation",MB_OK | MB_TASKMODAL | MB_ICONEXCLAMATION);
  return;
}

// Заполнение палитры матрицы
COLORREF firstColor = RGB(255,0,0);
COLORREF mediumColor = RGB(0,255,0);
COLORREF lastColor = RGB(0,0,255);
int rcPalette = mapSetMtqTwoIntervalPalette(hMtq, firstColor, mediumColor, lastColor, 64, 20, 1);

double Elem = MtrParm.ElemSizeMeters;  // Размер элемента в метрах

double Value = 0;  // Заносимое значение качества

double BegX = MtrParm.BeginX + Elem/2;  // Габариты участка местности
double BegY = MtrParm.BeginY + Elem/2;

double EndX = MtrParm.BeginX + MtrParm.Height - Elem/2;
double EndY = MtrParm.BeginY + MtrParm.Width  - Elem/2;

int errPutMtqValue = 0;

// Цикл заполнения элементов матрицы качеств
// для участка местности : {BegX,BegY} -> {EndX,EndY}
for (double X = BegX; X <= EndX; X += Elem)
{
  for (double Y = BegY; Y <= EndY; Y += Elem)
  {
    // Вычисление значения качества
    Value = Value + 1.0;

    // Вывод значения качества в матрицу
    if (mapPutMtqValue(hMtq, 1, X, Y, Value) == 0) errPutMtqValue = 1;
  }
}

// Установить диапазон отображаемых элементов матрицы качеств
int rcShowRange = mapSetMtqShowRange(hMtq, 1, 0.0, Value);

// Закроем созданную матрицу
mapCloseMtq(hMtq, 1);

if (rcPalette && rcShowRange && errPutMtqValue == 0)
  MessageBox(0, "Выполнено", "Построение матрицы качеств", MB_OK);
else
  MessageBox(0, "Не выполнено", "Построение матрицы качеств", MB_OK);
}
Размер блока данных MTW, Каков размер одного блока данных или почему вся матрица высот не может быть одним блоком?
 
Разбиение матрицы на блоки выполняется для ускорения обработки локальных участков большой матрицы.
Под обработкой понимается доступ к данным (элементам) матрицы при её создании и использовании (отображение,
запрос высот, построение профилей, зон видимости и т.п.).
Обычно блоки матрицы в файле хранятся в сжатом виде, что позволяет уменьшить размер матрицы высот в среднем в 4 раза.
Изменено: Александр Горбунов - 04.02.2016 12:32:17
Как конвертировать матрицу высот в матрицу качеств?
 
Преобразования MTQ в MTW и наоборот нет. Структура этих матриц почти совпадает (MTQ имеет палитру в самом файле, а MTW - нет). Казалось бы - почему не конвертировать ?
Но что получится, если например MTQ содержит какие-то значения (очень большие или очень малые) ?
Как отображать и использовать такой рельеф, представленный преобразованной в MTW матрицей качеств ?
Ведь не бывает высот, равных к примеру 10e-25 метра.
Поэтому эти типы матриц всё же разделены и по разному используются в соответствующих задачах.
Изменено: Александр Горбунов - 04.12.2015 11:01:51
Как создать матрицу высот по txt файлу XYZ
 
Задача называется "Загрузка матриц из TXT-файла" и вызывается пунктом меню "Импорт матриц".
То есть каких:  MTW или MTQ - не важно, можно получать и те и другие.
Изменено: Александр Горбунов - 04.12.2015 10:49:59
Как обрезать матрицу качеств по площадному объекту со множеством дырок?
 
[url=http://uploads.ru/hZXzt.png][img]http://s2.uploads.ru/t/hZXzt.png[/img][/url]

Вырезать MTW по заданному объекту позволяет задача "Нарезка матриц".
Предварительно нужно установить рамку матрицы по этому заданному объекту.
Реализации данной задачи для матриц качеств MTQ - пока нет.
Как создать матрицу высот по txt файлу XYZ
 
Файл-Импорт растров и матриц из ... - Матрицы качеств (TXT,XYZ)
Имя матрицы выбираем с расширением *.mtw
Если нужно заполнить пустоты, то включаем режим "Вычислять значения пустых элементов".

[url=http://uploads.ru/i1QLq.png][img]http://s6.uploads.ru/t/i1QLq.png[/img][/url]
Изменено: Александр Горбунов - 04.12.2015 09:43:22
Проблемы с работой в комплексе 3D анализа, Построение карты зон видимости
 
Предлагаю: открыть карту без "предистории" то есть перед открытием - удалить все служебные
файлы с расширением ".ini". Затем добавить к карте матрицу высот ".mtw" и построить зону
видимости.
Дело в том, что задача построения зоны видимости берёт из ".ini" какое-то
имя создаваемого растра видимости (которое считает некорректным) и это ей мешает.
Изменено: Александр Горбунов - 19.11.2015 09:16:28
Проблемы с работой в комплексе 3D анализа, Построение карты зон видимости
 
Перенёс Вашу карту в отдельный каталог (без INI-файлов).
[url=http://uploads.ru/qnxiZ.png][img]http://s6.uploads.ru/t/qnxiZ.png[/img][/url]
Затем построил зону видимости
[url=http://uploads.ru/Sz3Ek.png][img]http://s3.uploads.ru/t/Sz3Ek.png[/img][/url]
Всё хорошо.
Ошибка "Загрузка матрицы из текстового файла" 3D Анализ
 
Данное сообщение (Z не входят в диапазон) может появляться только при включении
режима "Не загружать значения вне диапазона". Режимы диалога загрузки читаются
из INI-файла приложения Panorama.ini. Для того, чтобы INI-файл "запомнил" выключение
этого режима можно один раз выйти из диалога загрузки с этим выключенным режимом.

То есть проверку на соответствие диапазону Вы можете отключить сами - сбросом
режима "Не загружать значения вне диапазона".

Сообщение про неверный разделитель или формат строки выдаётся один раз при чтении
всего исходного TXT-файла. Такое сообщение необходимо, так как можно просто ошибочно
выбрать не тот разделитель или формат строки (диалог позволяет это сделать).
Изменено: Александр Горбунов - 10.11.2015 15:35:22
Страницы: Пред. 1 ... 6 7 8 9 10 11 12 13 14 15 16 ... 38 След.



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности