Страница 21 из 23

Re: Конвертация кеша в/из разных форматов.

СообщениеДобавлено: 18 авг 2012, 23:59
zed
А вообще - оформите хотелку, пускай весит. Там vdemidov как раз взялся немного переделать конвертилку, может и тут придумает как избавиться от указания расширения.

Re: Конвертация кеша в/из разных форматов.

СообщениеДобавлено: 19 авг 2012, 00:28
vdemidov
На самом деле я полностью переделываю тайлохранилища, конвертилку только рикошетом заденет. Функционал я менять пока не собираюсь.

Re: Конвертация кеша в/из разных форматов.

СообщениеДобавлено: 19 авг 2012, 11:10
Tolik
zed писал(а):Могу убрать, но взамен я буду просить указать zmp, который описывает кэш-источник. Но сомневаюсь, что так будет лучше.

Зачем что-то указывать? У вас есть путь к исходному кэшу. Надо зайти туда и посмотреть на первый попавшийся тайл, какого он типа.

Re: Конвертация кеша в/из разных форматов.

СообщениеДобавлено: 19 авг 2012, 11:50
zed
А если в том кэше несколько типов, как спрашивали выше. Если взять первый попавшийся тайл, то половина кэша может и не сконвертироваться. А если это кэш Беркли, так там даже чтобы взять первый попавшийся тайл, нужно сперва открыть БД. А как работать с БД знает только тайлохранилище, а чтобы создать тайлохранилище ему нужно указать дефолтный Content-Type. Замкнутый круг.

Re: Конвертация кеша в/из разных форматов.

СообщениеДобавлено: 19 авг 2012, 12:26
vdemidov
Ну, вообще то, я давно думаю, о том что бы в папку с кэшом помещать файлик с метаинформацией о содержимом. Тоесть формат кэша, формат файлов, проекция. Может быть что-то еще. При обращении к такому кэшу должна происходить проверка ожидаемой мета информации и полученной из конкретной папки. Если мета-информации нет, то просто записываем то что должно быть. Если есть и совпало, то работаем. Если не совпало, то кэш отваливается с ошибкой. Соответственно отключаются все операции с ним.

Re: Конвертация кеша в/из разных форматов.

СообщениеДобавлено: 19 авг 2012, 12:58
zed
vdemidov писал(а):Ну, вообще то, я давно думаю, о том что бы в папку с кэшом помещать файлик с метаинформацией о содержимом.

Во, когда будет сделано нечто подобное, тогда и вопрос с Content-Type'ом снимется. А пока...

Re: Конвертация кеша в/из разных форматов.

СообщениеДобавлено: 19 авг 2012, 17:23
Dima2000
... А пока не заморачиваться с выбором расширений тайлов и путей к кэшам, а сделать выбор по именам карт из Maps.ini или каталога карт. Как в самом САС. Намного более понятно! :) В параметрах карты есть и путь, и content-type, и человеческое название, которое и используется при выборе карты. И сильно подозреваю, что эти все параметры всех карт засосаны в внутренние удобные структуры при старте САСа, даже парсить файлы не надо. Это про источник. Для приёмника к списку карт добавить пункт "Новый путь/тип..." чтобы можно было указать куда класть результат в новом формате, ещё не задействованном в САСе.

Re: Конвертация кеша в/из разных форматов.

СообщениеДобавлено: 19 авг 2012, 18:08
zed
Dima2000 писал(а):не заморачиваться с выбором расширений тайлов и путей к кэшам

А если вы скачали из интернета кэш в формате Беркли, как вы, по вашей логике, импортируете его к себе в программу? Сейчас конвертер универсален и не нужно ничего упрощать, бо функционал отвалится.

Re: Конвертация кеша в/из разных форматов.

СообщениеДобавлено: 20 авг 2012, 15:04
zed
Небольшой финт ушами, при конвертировании в кэш Беркли, который может на порядок ускорить процесс. Всё на свой страх и риск и только для продвинутых пользователей! Если что - я вас предупреждал :)

Финт заключает в том, чтобы убрать папку env с HDD и положить её в RAM. Поскольку, при записи данных в БД они вначале пишутся в журнал (в папке env), а только потом, собственно, попадают в БД, то происходит двойная нагрузка на винт (сделано это не просто так, а ввиду обеспечения т.н. свойства ACID). Если в обычном режиме использования САСа (просмотр руками/загрузка региона) это не сильно страшно, то вот в режиме конвертирования кэша, когда мы в короткий промежуток времени записываем десятки, а то и сотни Гб данных, это создаёт серьёзную нагрузку на винт. Поэтому, в угоду производительности, в отдельные моменты, хотелось бы пожертвовать супер-неубиваемостью кэша... но как? И тут нам на помощь приходит виртуальный жёсткий диск в оперативке. Этот диск покупать не надо, а надо взять программку DataRam RAMDisk (бесплатная, при создании дисков до 4Гб) и создать этот самый диск.

По шагам:
1. Устанавливаем программу RAMDisk и перезагружаем винду
2. Создаём виртуальный диск в 256Мб, при создании указываем не форматировать диск и в конфигах указываем сохранение/восстановление диска при перезагрузках винды
3. Идём в дебри настроек винды: Панель управления - Администрирование - Управление компьютером - Управление дисками
4. Находим там наш диск, форматируем его в NTFS с размером кластера 4k. При форматировании указываем, что диск монтировать в систему и назначать ему букву не нужно
5. Закрываем САС
6. Если в кэше САСа для данной карты уже есть данные, то при помощи утилиты sdb_util выполняем Auto-Recover (после чего папка env должна будет удалиться)
7. Опять возвращаемся в Управление дисками и монтируем наш диск в папку sas\cache_db\you_map\env\ Вот тут справка от Microsoft, если кто заблудится в настройках
8. Вот, в общем-то и всё, в кэше у выбранной карты должна появиться папка env, но физически она будет у нас в оперативке - можно приступать к конвертированию кэша
9. После того, как конвертирование завершится, нужно будет опять выполнить п.6 для данной карты, чтобы подчистить хвосты в БД и отвязать её от папки env. После этого можно удалять RAM диск и работать с кэшем как и раньше

После этого финта, мы можем потерять данные только если упадёт винда или RAMDisk вдруг заглючит, другими словами, мы нарочно, временно, нарушаем свойство Durability (Долговечность) у БД.

P. S. Всё вышесказанное протестировано на текущей ночнушке. За релиз - гарантий не дам.

Создание слоя из программы ASSET

СообщениеДобавлено: 18 сен 2013, 09:37
zOOm
День добрый.Не могу найти тему с опицанием процедуры загрузки карт покрытия из ASSETа. Подскажите пожалуйста.

Хочу создать слой экспортируемый из ASSET в SAS.