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

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

Модераторы: Tolik, zed

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

Сообщение zed » 18 авг 2012, 23:59

А вообще - оформите хотелку, пускай весит. Там vdemidov как раз взялся немного переделать конвертилку, может и тут придумает как избавиться от указания расширения.
Хитрости GoogleEarth - то, чего вы не знаете о гугле
Аватара пользователя
zed
Гуру
 
Сообщения: 1519
ICQ: 357167611
Зарегистрирован: 16 авг 2008, 20:21
Откуда: Беларусь, Могилёв
Благодарил (а): 37 раз.
Поблагодарили: 177 раз.

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

Сообщение vdemidov » 19 авг 2012, 00:28

На самом деле я полностью переделываю тайлохранилища, конвертилку только рикошетом заденет. Функционал я менять пока не собираюсь.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1166
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 92 раз.
Поблагодарили: 52 раз.

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

Сообщение Tolik » 19 авг 2012, 11:10

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

Зачем что-то указывать? У вас есть путь к исходному кэшу. Надо зайти туда и посмотреть на первый попавшийся тайл, какого он типа.
Tolik
Гуру
 
Сообщения: 1624
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 68 раз.
Поблагодарили: 242 раз.

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

Сообщение zed » 19 авг 2012, 11:50

А если в том кэше несколько типов, как спрашивали выше. Если взять первый попавшийся тайл, то половина кэша может и не сконвертироваться. А если это кэш Беркли, так там даже чтобы взять первый попавшийся тайл, нужно сперва открыть БД. А как работать с БД знает только тайлохранилище, а чтобы создать тайлохранилище ему нужно указать дефолтный Content-Type. Замкнутый круг.
Хитрости GoogleEarth - то, чего вы не знаете о гугле
Аватара пользователя
zed
Гуру
 
Сообщения: 1519
ICQ: 357167611
Зарегистрирован: 16 авг 2008, 20:21
Откуда: Беларусь, Могилёв
Благодарил (а): 37 раз.
Поблагодарили: 177 раз.

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

Сообщение vdemidov » 19 авг 2012, 12:26

Ну, вообще то, я давно думаю, о том что бы в папку с кэшом помещать файлик с метаинформацией о содержимом. Тоесть формат кэша, формат файлов, проекция. Может быть что-то еще. При обращении к такому кэшу должна происходить проверка ожидаемой мета информации и полученной из конкретной папки. Если мета-информации нет, то просто записываем то что должно быть. Если есть и совпало, то работаем. Если не совпало, то кэш отваливается с ошибкой. Соответственно отключаются все операции с ним.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1166
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 92 раз.
Поблагодарили: 52 раз.

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

Сообщение zed » 19 авг 2012, 12:58

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

Во, когда будет сделано нечто подобное, тогда и вопрос с Content-Type'ом снимется. А пока...
Хитрости GoogleEarth - то, чего вы не знаете о гугле
Аватара пользователя
zed
Гуру
 
Сообщения: 1519
ICQ: 357167611
Зарегистрирован: 16 авг 2008, 20:21
Откуда: Беларусь, Могилёв
Благодарил (а): 37 раз.
Поблагодарили: 177 раз.

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

Сообщение Dima2000 » 19 авг 2012, 17:23

... А пока не заморачиваться с выбором расширений тайлов и путей к кэшам, а сделать выбор по именам карт из Maps.ini или каталога карт. Как в самом САС. Намного более понятно! :) В параметрах карты есть и путь, и content-type, и человеческое название, которое и используется при выборе карты. И сильно подозреваю, что эти все параметры всех карт засосаны в внутренние удобные структуры при старте САСа, даже парсить файлы не надо. Это про источник. Для приёмника к списку карт добавить пункт "Новый путь/тип..." чтобы можно было указать куда класть результат в новом формате, ещё не задействованном в САСе.
Dima2000
Соображающий
 
Сообщения: 70
Зарегистрирован: 01 апр 2012, 18:20
Откуда: Россия, Москва
Благодарил (а): 22 раз.
Поблагодарили: 5 раз.

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

Сообщение zed » 19 авг 2012, 18:08

Dima2000 писал(а):не заморачиваться с выбором расширений тайлов и путей к кэшам

А если вы скачали из интернета кэш в формате Беркли, как вы, по вашей логике, импортируете его к себе в программу? Сейчас конвертер универсален и не нужно ничего упрощать, бо функционал отвалится.
Хитрости GoogleEarth - то, чего вы не знаете о гугле
Аватара пользователя
zed
Гуру
 
Сообщения: 1519
ICQ: 357167611
Зарегистрирован: 16 авг 2008, 20:21
Откуда: Беларусь, Могилёв
Благодарил (а): 37 раз.
Поблагодарили: 177 раз.

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

Сообщение zed » 20 авг 2012, 15:04

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

Финт заключает в том, чтобы убрать папку 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. Всё вышесказанное протестировано на текущей ночнушке. За релиз - гарантий не дам.
Хитрости GoogleEarth - то, чего вы не знаете о гугле

За это сообщение автора zed поблагодарил:
Tolik (20 авг 2012, 15:36)
Аватара пользователя
zed
Гуру
 
Сообщения: 1519
ICQ: 357167611
Зарегистрирован: 16 авг 2008, 20:21
Откуда: Беларусь, Могилёв
Благодарил (а): 37 раз.
Поблагодарили: 177 раз.

Пред.

Вернуться в SAS.Планета

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

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

cron