Отображение и привязка полей данных из excel
-
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 21 дек 2016, 16:14
- Репутация: 0
Отображение и привязка полей данных из excel
В excel был выполнен расчет напряженности электромагнитного поля вблизи антенны, результат расчета представляет из себя эксель таблицу 100x100 ячеек со значениями параметра, шаг между ячейками - 1 метр, сама антенна расположена посередине - в ячейке 50,50.
Подскажите, пожалуйста,как лучше подготовить эти данные и какими инструментами проще всего привязать их к карте.
Подскажите, пожалуйста,как лучше подготовить эти данные и какими инструментами проще всего привязать их к карте.
-
- Участник
- Сообщения: 79
- Зарегистрирован: 01 май 2013, 22:38
- Репутация: 30
- Откуда: Сыктывкар
Re: Отображение и привязка полей данных из excel
Проще всего будет ваши данные представить в виде таблицы X,Y,P. Где X,Y – прямоугольные координаты точек вашей системы координат, P – значение параметра. После этого пересчитать координаты в систему координат проекции, и добавить в ГИС стандартным инструментом.
-
- Активный участник
- Сообщения: 160
- Зарегистрирован: 17 янв 2012, 18:51
- Репутация: 74
Re: Отображение и привязка полей данных из excel
На мой взгляд, наиболее простой вариант это уже в Excel переформировать данные в пригодный для загрузки в MI формат. Например, с помощью следующего кода.
Далее в обычном порядке загружаем этот лист в MapInfo, выполняем Таблица/Создать точечные объекты (проекция План-Схема). Ну а далее по интересам, например Карта/Создать тематическую карту.
Код: Выделить всё
Option Base 1
Sub CreateGrid()
Dim tbGridValue As Variant
Dim tbGrid(15000, 4) As Variant 'id,x,y,value
Dim n, m As Integer 'строк, столбцов
Dim i, j, k As Integer
Dim x, y, dx, dy As Double
tbGridValue = Sheets(1).Range("A1").CurrentRegion 'исходные данные
n = UBound(tbGridValue, 1)
m = UBound(tbGridValue, 2)
k = 0
dx = 1
dy = 1
For i = 1 To n
y = y + dy
For j = 1 To m
k = k + 1
x = x + dx
tbGrid(k, 1) = k
tbGrid(k, 2) = x
tbGrid(k, 3) = y
tbGrid(k, 4) = tbGridValue(i, j)
Next
x = 0
Next
Sheets.Add
Sheets(1).Name = "grid"
Sheets(1).Range("A1:D15000") = tbGrid 'результат для загрузки в MI
End Sub
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Отображение и привязка полей данных из excel
я бы посоветовал сделать наоборот: создать сетку на нужную территорию (вокруг антенны), в нужной системе координат. Мапинфо для этого не годится, а вот QGIS волне. Сохранить (или вообще создать руками) в текстовом формате (ASCII Grid, SURFER), конвертировать в X,Y,Z, и посчитать ваши величины в этих точках (пересчитав расстояние до центра по теореме Пифагора). А потом вставить эти значения обратно в сетку. При наличии минимальных навыков программирования на это уйдет немного времени, и получите готовый продукт.Тимиргалин Салават писал(а):Подскажите, пожалуйста,как лучше подготовить эти данные и какими инструментами проще всего привязать их к карте.
-
- Активный участник
- Сообщения: 160
- Зарегистрирован: 17 янв 2012, 18:51
- Репутация: 74
Re: Отображение и привязка полей данных из excel
Смешно.Мапинфо для этого не годится, а вот QGIS волне.
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Отображение и привязка полей данных из excel
Сколько всяких и разных идей. А зачем столько вариантов того как чистить зубы гаечным ключом?
Автор не указал, что собственно он знает о том как его сетка 100на100 переносится в систему координат, которая ему нужна. К чему остальные советы? Я знаю бездну вариантов того, что происходит потом.
Вот самые разумные два:
1. автор знает как каждая точка попадает в точку на местности. Далее есть варианты, но самый простой, если он знает как присвоить каждой точке координаты уже в Excel и умеет превратить 100х100 в столбик 10000. Столбик: X,Y,Z, но в векторе. Надо их загрузить в Mapinfo, а в MapInfo есть простейший построитель GRID-ов, но тут вроде супер сложный и не нужен, а может вообще не нужен. И всё - поле вы уже имеете.
2. Автор не знает как 100на100 отображается на местность, но может это хоть как то моделировать. Потому, как если он вообще ничего не знает, то тут ему никто и не поможет. 100на100 - это опять же X,Y,Z только уже в системе координат грида(растра). Да, 100на100 будут считаться от 0, а не от -50. Я уверен, что это не критично. Формат ASCII-grid Mapinfo умеет открывать, а любой открытый растр/грид позволяет привязать в специальном окне по 3-м точкам. Визуализация грида, так же заложена в базовые функции Mapinfo.
А что там собственно надо было сделать? Я задачи то и не увидел, так отдельные шаги к достижению ХЗ чего.
PS
И если я еще помню математику, то точка (50,50) не является центром сетки 100 на 100. 101 на 101 - возможно.
Автор не указал, что собственно он знает о том как его сетка 100на100 переносится в систему координат, которая ему нужна. К чему остальные советы? Я знаю бездну вариантов того, что происходит потом.
Вот самые разумные два:
1. автор знает как каждая точка попадает в точку на местности. Далее есть варианты, но самый простой, если он знает как присвоить каждой точке координаты уже в Excel и умеет превратить 100х100 в столбик 10000. Столбик: X,Y,Z, но в векторе. Надо их загрузить в Mapinfo, а в MapInfo есть простейший построитель GRID-ов, но тут вроде супер сложный и не нужен, а может вообще не нужен. И всё - поле вы уже имеете.
2. Автор не знает как 100на100 отображается на местность, но может это хоть как то моделировать. Потому, как если он вообще ничего не знает, то тут ему никто и не поможет. 100на100 - это опять же X,Y,Z только уже в системе координат грида(растра). Да, 100на100 будут считаться от 0, а не от -50. Я уверен, что это не критично. Формат ASCII-grid Mapinfo умеет открывать, а любой открытый растр/грид позволяет привязать в специальном окне по 3-м точкам. Визуализация грида, так же заложена в базовые функции Mapinfo.
А что там собственно надо было сделать? Я задачи то и не увидел, так отдельные шаги к достижению ХЗ чего.
PS
И если я еще помню математику, то точка (50,50) не является центром сетки 100 на 100. 101 на 101 - возможно.
-
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 21 дек 2016, 16:14
- Репутация: 0
Re: Отображение и привязка полей данных из excel
Всем большое спасибо за советы. Буду пробовать.
-
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 21 дек 2016, 16:14
- Репутация: 0
Re: Отображение и привязка полей данных из excel
Построил тематическую карту с параметром напряженности поля, однако в процессе работы возник еще один вопрос - можно ли вырезать на получившейся диаграмме отображение областей со значением параметра ниже определенного порогового значения?
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Отображение и привязка полей данных из excel
1. одна тема - один вопрос.
2. если уже есть результат и его необходимо улучшить - прикладывайте архив в составе рабочий набор+файл+таблица привязки.
3. описывайте все же задачу, а не ее части - телепатия не самая сильная сторона авторов на ГИС-лабе.
2. если уже есть результат и его необходимо улучшить - прикладывайте архив в составе рабочий набор+файл+таблица привязки.
3. описывайте все же задачу, а не ее части - телепатия не самая сильная сторона авторов на ГИС-лабе.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 15 гостей