Кто-нибудь пользуется Surfer?
возможно
для каких целей пишешь, если не секрет?
для каких целей пишешь, если не секрет?
Скажем, есть у нас набор данных, например, географические координаты (широта, долгота) и какой-нибудь третий параметр - среднегодовая температура или высота над уровнем моря или еще чего. И надо построить карту где можно увидеть нечто вроде изолниний этого третьего параметра. При этом данных дохрена, лежат они в текстовом файлике из трех столбцов на сотню мегабайт. Или даже не три столбца, а больше.
Вот это прога и рисует.
Surfer я использую в своей науке-космофизике. Сделал подписи под каждым рисунком.
Вот это прога и рисует.
Surfer я использую в своей науке-космофизике. Сделал подписи под каждым рисунком.
а qtiplot этого не сумеет сделать?
если данные неупорядочены, то придется тупо загружать все в память, иначе никак
если это "линейная развертка" карты, все гораздо проще, читаем потихоньку, если был переход через пороговое значение, ставим точку нужного цвета. Границы обрабатываем отдельно (на всякий случай)
если тебе по уже имеющейся дискретной высотной карте требуется построить ограничивающие контуры - можно сделать методом преобразования дискретной карты в непрерывную (растягивая точки до слияния друг с другом но такой подход накроется в случае сильно неоднородных данных и шумов - да и затраты на вычисления будут совершенно нерациональными
если это "линейная развертка" карты, все гораздо проще, читаем потихоньку, если был переход через пороговое значение, ставим точку нужного цвета. Границы обрабатываем отдельно (на всякий случай)
если тебе по уже имеющейся дискретной высотной карте требуется построить ограничивающие контуры - можно сделать методом преобразования дискретной карты в непрерывную (растягивая точки до слияния друг с другом но такой подход накроется в случае сильно неоднородных данных и шумов - да и затраты на вычисления будут совершенно нерациональными
Данные действительно не упорядочены и их дохрена. Все их в памяти я не держу. Просто считываю очередное значение из файла и рисую точку на рисунке. Если в той координате уже что-то было, я на это забиваю. Метод полезен не для поиска отдельных всплесков в какой-то точке, а в протяженном пространстве, если таких событий достаточно много.
Рисование контуров с помощью всяких мат. алгоритмов - слишком ресурсоемкая задача, плюс при их применении могут возникнуть артефакты - как будто данные есть там, где их не было в исходном файле.
Я перепробовал множество разных open-source программ, но они либо не умеют этого делать, либо грузят все данные в память, после чего падают.
Рисование контуров с помощью всяких мат. алгоритмов - слишком ресурсоемкая задача, плюс при их применении могут возникнуть артефакты - как будто данные есть там, где их не было в исходном файле.
Я перепробовал множество разных open-source программ, но они либо не умеют этого делать, либо грузят все данные в память, после чего падают.
как вариант могу предложить не грузить все в память, а рендерить в картинку, а потом обрабатывать
единственно, хочу предупредить - разрешение должно быть как минимум в 4 раза больше по каждой оси, чем на выходе
еще как вариант можно структурировать входные данные на этапе генерации
единственно, хочу предупредить - разрешение должно быть как минимум в 4 раза больше по каждой оси, чем на выходе
еще как вариант можно структурировать входные данные на этапе генерации
зачем?
можно чуть поподробнее?
можно чуть поподробнее?
ну скажем для учета погрешностей, или чтобы потом можно было в один проход по картинке пробежаться и построить контур
как пример, можно потом сделать гауссово размытие и работать с картинкой как со сплошной
как пример, можно потом сделать гауссово размытие и работать с картинкой как со сплошной
не буду спорить, что так можно сделать, но делать так не хочу
ну, я на самом деле не слишком здорово представляю, как такое делать
я сам не сталкивался, потому предложил первый пришедший в голову вариант, с которого бы сам и начал в случае необходимости. Вполне возможно, потом я бы лучше понял, что мне надо и как это делать.
Так что пока помочь не могу, извини, занят слегка.
я сам не сталкивался, потому предложил первый пришедший в голову вариант, с которого бы сам и начал в случае необходимости. Вполне возможно, потом я бы лучше понял, что мне надо и как это делать.
Так что пока помочь не могу, извини, занят слегка.
Я пропустил, а сколько точек ты хочешь обработать?
миллион тебя устроит в качестве верхней грани? 

Оставить комментарий
Elina74
Я тут пишу проектик "под себя".qColorMap ( http://sourceforge.net/projects/qcolormap/ )
Цель - создать свободное ПО подобное Golden Software Surfer в той его части функций, которая рисует карты 3D данных на 2D плоскости. Значение Z кодируется цветом (так называемые карты classed post).
Скриншотики.
Распределение потоков протонов на высоте ~600 км по данным спутника SAMPEX
график функции z = sin(x^2+y^2)/(x^2+y^2)
часть первого рисунка в области так называемой Южно-Атлантической Аномалии
Кому-нибудь кроме меня это вообще может быть полезно?