Программа для учета топокарт

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 203
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Программа для учета топокарт

Сообщение SergeyRyzhkov » 07 мар 2015, 21:13

Можно любым масштабом, как скажете :)
Проблема в другом. Я имею только теоретические знания как организована разграфка, принципы формирования номенклатуры, но я ни разу на практике не видел как это все используется... :( , как организовано хранилище, принципы формирования наименований фалов (если в файловой системе) и т.д.

Кстати тем и интересно мне этим заняться - новые практические знания...

Petruxin
Гуру
Сообщения: 1692
Зарегистрирован: 14 июн 2011, 16:47
Статьи: 2
Проекты: 2
Репутация: 132
Ваше звание: Завсегдатай
Откуда: Череповец

Re: Программа для учета топокарт

Сообщение Petruxin » 07 мар 2015, 21:25

Я тоже не видел как это используется... ждем топикстартера.
С другой стороны - как сделаете так и будет использоваться.

[ Сообщение с мобильного устройства ]

Jack
Новоприбывший
Сообщения: 13
Зарегистрирован: 05 мар 2015, 19:08
Репутация: 1

Re: Программа для учета топокарт

Сообщение Jack » 08 мар 2015, 00:54

Наверное стоит ограничится масштабами от 200k до 25k, если брать более подробные, карта заполнения будет очень большой и неинформативной. Эта проблема (необходимость понять, что есть и чего нет из карт) возникла именно в связи с генштабовскими и ггц картами, которые как раз укладываются в этот диапазон. Планшетов по своему региону я никогда не видел, поэтому не знаю, что с ними как (был бы рад хотя бы взглянуть на них по Нижегородской области).

Когда писал про номенклатуру, не точно выразился. Имел в виду, что часто карты называют как попало, не соблюдая точно правила наименования листа. Римские цифры часто заменяют арабскими, кириллические буквы - латинскими. Это удобнее "в быту", но создает путаницу и определить масштаб и положение листа по названию иногда не получается. У меня в голове изрядная путаница со всем этим, но с помощью статьи в википедии нарисовал схемку, иллюстрирующую проблему http://rghost.ru/8s7Z2fxbB (pdf, 160 Кб). Там же нарисовал что-то вроде примерного алгоритма, по которому может анализироваться имя файла - в реальности наверное все будет чуть сложнее, так как тут не учел еще сдвоенные листы советских карт для высоких широт. Возможно стоит попросить пользователя самостоятельно выбрать масштаб перед обработкой, чтобы программе было проще анализировать информацию.
SergeyRyzhkov писал(а):как организовано хранилище, принципы формирования наименований фалов (если в файловой системе) и т.д.
Никак не организовано. У меня, к примеру, ГШ и ГГЦ хранится в папках по номеру миллионного листа, напр. "N-35", в котором вложенные папки вида "200k", "500k" и т.д., в которых россыпью лежат файлы, иногда вместе с привязками. Это не важно, папка может быть любой. Думаю, это распространенный вариант. Свести все это в базу данных - мысль интересная и хорошая, но я не умею.
Файлы обычно имеют имена вида "M-43-123-Г-1978-Название местности (иногда)" или "M-45-003-C-d" если буквы латиницей. Вот, как-то так...

Boris
Гуру
Сообщения: 4115
Зарегистрирован: 10 апр 2006, 22:34
Статьи: 3
Проекты: 1
Репутация: 406
Откуда: Париж

Re: Программа для учета топокарт

Сообщение Boris » 08 мар 2015, 01:39

Я не знаю, придет ли наш топикстартер, прошу прощения, писал пол дня, с подходами-отходами, когда отослал уже и автор сам высказался,
так что я слегка развернуто напишу свое виденье того, как это должно быть разумно устроено:
принципы:
1. файловое хранилище, не ограниченное по месту расположения.
2. по уму, единица хранения(=каталог верхнего уровня) - лист 1 млн. к счастью, кроме экзотики СК-63(МСК-ХХ) большинство планшетов устроено во всем мире однообразно : я ее познавал вот тут
3. подкаталоги по масштабу: 1М, 500К-010К
4. справочная таблица, как я ее делал (вернее, если бы я ее дальше делал):
1) уникальный номер, в ряде номенклатур, это некий номер подряд,
2) - 6) написание номенклатурного листа, учитывая, что их любят писать нескольким способами, с тире, точками, кириллицей и латиницей, и номерами вместо букв, лучше заложить несколько полей;
7) имя файла
8 ) тип файла (может быть важен для некоторых ГИС)
9) путь к файлу без буквы диска
10) буква диска, сетевой адрес диска, или иная строка подключения файлового хранилища
11) имя файла привязки
12) - 13) аналог п.10-11 для файла привязки
14) - 15) размеры в пикселях
16) - 19) координаты верхнего левого - нижнего правого
или 16) - 23) координаты всех 4-х углов
24) - 26) строка проекции растра в разных ГИС ( на вскидку PRJ, WKT, MapInfo, ...)
27) имя диска
28) номер диска (п.27,28 - для распространенных случаев, когда планшеты хранятся на внешнем или сменном носителе, в том числе на DVD-дисках)
29) дополнительная описательная информация, как то год выпуска, год актуальности, год актуализации
30) ссылка на ближайший более актуальный планшет той же номенклатуры
31) м.б. масштаб, т.к. есть случаи, когда он не очевиден, и не только для случаев сдвоенных-строенных планшетов.
32) и 0) (зависит от ГИС) - это, собственно контур самого планшета в векторе. В виде полигона, что бы можно было делать стандартные пространственные операции. Формат SHP - как наиболее распространенный, CSV+VRT как наиболее универсальный для тех, кто дружит с GDAL, MIF/MID - как наиболее (для меня) наглядный.
---
Что касается программной части, то тут, на мой вкус, кроме загрузить-обновить информацию, самая востребованная операция - это "покажи мне все планшеты, что влезают в мой экран, если масштаб такой то".

Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 203
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Программа для учета топокарт

Сообщение SergeyRyzhkov » 08 мар 2015, 11:40

Jack , Boris
Спасибо Вам за новые знания!
Приоткрыли некоторые практические моменты работы с картами (номенклатурными).
После праздников подумаем что можно сделать ...

Аватара пользователя
ANAT01
Активный участник
Сообщения: 192
Зарегистрирован: 18 апр 2012, 14:41
Репутация: 57

Re: Программа для учета топокарт

Сообщение ANAT01 » 08 мар 2015, 23:18

Делал что-то подобное в qGis несколько лет назад
Изображение

Детали реализации не помню, но суть была в том что существование всех планшетов записано в таблицу.
У таблицы настроен стиль отображения по условию (если есть планшет - зеленый, если нет - красный)
По нажатию на "зеленый" планшет, - файл планшета открывался в автокаде.

Код для действия

Код: Выделить всё

# -*- coding: utf-8 -*-
import re
import subprocess
if "[%EXIST%]" == "1":
	dir = u'C:\\ПутьКПланшетам\\Планшеты\\'
	pldir = re.search(u'(-?\d+-[АБВГ])', u'[%NUM500%]').group(1) + u'\\'
	plname = u'[%NUM500%]' + u'.dwg'
	path = dir + pldir + plname
	try:
		with open(path): pass
		subprocess.Popen('acad ' + path.encode('cp1251'), shell = True)
	except IOError:
		QtGui.QMessageBox.information(None, u'Отсутствует планшет!', path)
PS: Сама таблица генерировалась скриптом по правилам номенклатуры и сразу проверялось наличие такого файла в каталоге. Результаты записывались в файлы mif/mid, потом экспортировались в shp и обрезалось все по полигону нужной территории.

PPS: Все становится совсем крутым, если подобрать параметры проекции МСК. Тогда можно использовать хоть яндекс.карты, хоть OSM в качестве подложки для наглядности.
НаглядностьShow
Изображение
упячка11111адинадинадин!!!!11

Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 203
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Программа для учета топокарт

Сообщение SergeyRyzhkov » 09 мар 2015, 11:14

ANAT01,
+1
Может Вы найдете реализацию и выложите ?
Тогда, возможно, и изобретать ничего не придется, если все устраивает Jack.
Если что-то нужно доработать, доработаете?
Например, как я понял, не всегда наименования файлов соответствуют правилам номенклатуры и нужно "ручное сопоставление" файл-карта

Аватара пользователя
ANAT01
Активный участник
Сообщения: 192
Зарегистрирован: 18 апр 2012, 14:41
Репутация: 57

Re: Программа для учета топокарт

Сообщение ANAT01 » 09 мар 2015, 12:29

Скрипт найти не удалось. К тому же в чистом виде он не подошел бы, так как описывал 500ку местной системы координат.
По поводу "кривого" наименования планшетов, - Сперва нужно это исправить по возможности!
Делал на полуавтомате (нужно править, чтобы подошел под вашу номенклатуру):

Код: Выделить всё

<?php
$start='-12'; // планшет с наименьшим номером
$stop='100'; // планшет с наибольшим номером

// Сначала создаем массив всех возможных вариантов номенклатуры
foreach (range($start, $stop) as $val1){
   $str1=$val1;
    foreach (array('А','Б','В','Г') as $val2){
        $str2=$str1."-".$val2;
      $foldernames[]=$str2;
      $folder = 'folders/'.$str2;
      foreach (range(1, 16) as $val3){
            $str3=$str2."-".$val3.'.dwg';
         $plnames[]=$str3;
        }
    }
}

// пробегаемся по всем папкам (здесь 2 уровня, 1-ый это родительская папка группы планшетов, 2-й сам файл планшета.)
// Если найденный файл не подходит по номенклатуре - вываливается сообщение об этом
foreach(scandir('folders/') as $val1){
   if($val1<>'.' & $val1<>'..'){
      if(is_dir('folders/'.$val1)){
         if (!in_array ($val1, $foldernames)){
            echo "Неверная папка $val1 \r\n";
         }
         foreach (scandir ('folders/'.$val1) as $val2){
            if(is_file('folders/'.$val1.'/'.$val2)){
               if (!in_array  ($val2, $plnames)){
                  echo "Неверный файл $val2 \r\n";
               }
            }
         }
      }else {
         echo "Обнаружена не папка $val1\n";
      }
   }
}
 
упячка11111адинадинадин!!!!11

Jack
Новоприбывший
Сообщения: 13
Зарегистрирован: 05 мар 2015, 19:08
Репутация: 1

Re: Программа для учета топокарт

Сообщение Jack » 09 мар 2015, 15:42

Про распознавание имени. Случайно нашел страничку программы Map-maker assistant http://art4x4.ru/progmma2.html она для генерации map-привязок. Там у разработчика возникла такая же проблема распознавания имени, реализованы разные возможности, исходники версии 1.2 доступны на той же странице - возможно это будет чем-то полезно.

Boris
Гуру
Сообщения: 4115
Зарегистрирован: 10 апр 2006, 22:34
Статьи: 3
Проекты: 1
Репутация: 406
Откуда: Париж

Re: Программа для учета топокарт

Сообщение Boris » 10 мар 2015, 02:35

Глаз зацепился за малое обсуждение "имя файла - оно же номенклатурный лист, достаточно только правильно его назвать", так вот - это приятный , но на 100% порочный путь.
Способов назвать лист есть несколько, и некоторые из них патриотично используют русские буквы. Во-первых, такие способы обязательно дадут вам по затылку при попытках наладить взаимодействие в рамках больше чем одного ГИС продукта или кодовой страницы, во-вторых, сортировка ваша станет непредсказуемой.
И в третьих, понадобится отдельный ОТК, который будет следить за тем, что бы верно писали римские цифры (есть такое в номенклатуре), и что бы не заменяли русскую Г на G, В на V, соблюдали регистр букв (Windows - пофигу, а вот 'nix - создаст вам несколько прекрасных мгновений, если перепутаете или перенесете с Windows), и т.д. и т.п.

Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 203
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Программа для учета топокарт

Сообщение SergeyRyzhkov » 10 мар 2015, 11:17

Борис, Вы правы.

Коллеги, рабочая неделя началась, будут и обеденные перерывы :)
Будем делать ?

Jack
Новоприбывший
Сообщения: 13
Зарегистрирован: 05 мар 2015, 19:08
Репутация: 1

Re: Программа для учета топокарт

Сообщение Jack » 10 мар 2015, 13:26

SergeyRyzhkov писал(а): Будем делать ?
Было бы замечательно! :roll:
В ходе обсуждения задача явно разделилась на две. Отлично конечно иметь штуку, которая будет работать с ГИС приложениями и делать все - это "конечное" решение, позволяющее навести порядок в многочисленных картах на жестком диске, с удовольствием бы пользовался на стационарном компе. Здесь действительно может получится очень удобный инструмент. Но есть и второй момент - с чего собственно все началось - хочется иметь простую, маленькую программу, которая не требует дополнительных программ, а просто анализирует файлы в каталоге. Зачем такой упрощенный вариант? Чтобы на любой машине это можно было сразу сделать любому человеку, не имея никаких знаний о ГИС. Находясь в городе, предпочел бы первый вариант, но в поле небольшое отдельное решение будет предпочтительным.

Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 203
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Программа для учета топокарт

Сообщение SergeyRyzhkov » 10 мар 2015, 14:24

Jack я Вас понял.
Я сам противник использовать ГИС там где это не нужно. Поэтому никаких ГИС и не планировалось.

Я вот подумал. Порылся на своих накопителях, ресурсах и т.д. и обнаружил что у меня просто помойка данных, разобраться в которых порой очень трудно.

Дабы от этой работы была и мне польза, а возможно кому-то еще, сделаем чуть крупнее,а решение Вашей задачи будет одним из модулей.

Все приурочу к субботнику 22 апреля который буду проводить на своих компах ...

Предлагаю разделить будущую программу на три составляющих:

1. Ведение метасхемы о картах (ведение иерархических групп карт, регистрация новых карт и т.д.)
2. Пакетная авторегистрация карт (по правилам и без) с возможностью ручной "дорегистрации" - Jack - ваша задача.
3. Анализ и визуализация статистики базы карт (Jack частично и Ваша задача)
4. Вспомогательные утилиты над существующей базой карт. Уже ГИС-задачи

В качестве основной БД для ведения метасхемы будет использоваться Sqlite, учитывая что будет использоваться nHibernate, то база данных может быть практически любой.

Учитывая что закон об авторских правах защищает реализацию, а не идею, то также буду ориентироваться на ГИС Панарама (в части модуля ведения банка цифровых карт), к которой кстати очень уважительно отношусь. Из-за отсутствия лицензии буду ориентироваться на документацию. Также учту предложения Бориса
Если еще есть пожелания, пишите.

План работы такой:
1. Разработка схемы БД (концептуальной). Затем выложу здесь.
2. После согласования п 1. Реализация UI по ручному ведению метасхемы
3. Реализация пакетной авторегистрации карт. Возможно элементы первичного анализа полноты данных
4. Выкладываю здесь и таймаут (до понимания что это кому-то еще нужно :)

Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 203
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Программа для учета топокарт

Сообщение SergeyRyzhkov » 10 мар 2015, 16:52

SergeyRyzhkov писал(а): План работы такой:
1. Разработка схемы БД (концептуальной). Затем выложу здесь.
2. После согласования п 1. Реализация UI по ручному ведению метасхемы
3. Реализация пакетной авторегистрации карт. Возможно элементы первичного анализа полноты данных
4. Выкладываю здесь и таймаут (до понимания что это кому-то еще нужно :)
В обед успел накидать концептуальную модель БД.

1. Сразу отвечу - БД я разрабатываю в Sybase PowerDesigner
2. Схема БД выглядит порой смешно, но делается по стандарту, поэтому так...

Если не привычно читать нотацию сущность-связь (что естественно), кратко словами

1. Для удобства ведения каталога - реализована сущность группа карт (с полем тип группы - справочник). Сущность иерархическая (дерево)

2. Основная сущность - Карта, которая может входить в одну или более групп.
Основные атрибуты видно на схеме, дополнительно выбор из справочников:
- Тип данных карты
- Масштаб карты
- Статус карты
- Гриф секретности
- Тип лицензии
- Формат карты
- Система координат
- Охват карты (BBOX), который имеет также ссылку на справочник СК

3. Карта состоит из одного и более файлов.
Атрибуты сущности Файл показаны на схеме, дополнительно выбор из справочника - Тип файла

4. Справочно сделана вспомогательная сущность "Тип файла в формате" - для "задания" какие типы файлов могут (и\или должны) входить в тот или иной формат карты

Ругайте, предлагайте...
Очень потом накладно при изменении структуры БД переделывать все остальное
Вложения
dbms_model_01.png
dbms_model_01.png (208.02 КБ) 7275 просмотров

Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 203
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Программа для учета топокарт

Сообщение SergeyRyzhkov » 11 мар 2015, 14:53

Как-то замечаний, предложений нет :( ???

Закончился обед № 2:
Результат:
1. Сгенерил физ.модель БД. Создал БД SQLite
2. Развернул новое приложение (WinForms)
3. Реализовал ведение справочников и формы СК

Jack, напишите, пож, на почту, а то я могу увлечься и сделать монстра, который Вам не нужен будет :)
Сделаем Вам по быстрому...

ЗЫ: Модераторов просьба не возбуждаться, после того как пообщаемся по почте (если еще актуально), результат будет здесь! (просто не хочется захламлять излишне)
Вложения
Обед№2.png
Обед№2.png (33.22 КБ) 7177 просмотров

Ответить

Вернуться в «Общие вопросы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость