Снёс в Ubuntu старый QGIS и поставил новый (http://www.qgis.org/en/site/forusers/download.html)
Слой исходных данных (точек с весами) сохраняю в таблицу. Для удобства работы в QGIS регистрирую колонку в geometry_columns (http://postgis.net/docs/AddGeometryColumn.html) - тогда программа не будет сканировать все данные из таблицы.
В QGIS делаю новый проект. Проекция - pseudo merkaartor, id 3857. Импортирую слой, при этом сразу фильтрую (в списке колонок и таблиц - жму в правой колонке и вставляю что-то вроде
st_within(st_envelope('srid=4326;line(82.7 54.7 83.3 55.3)'::geometry), geom)
(geom - имя колонки, по которой фильтрую)
Точки появляются в слое. Проверяю, получилась ли нужная проекция. Если нет - приходится пересоздавать проект и слой, иначе я не смог получить правильную теплокарту (она будет диспропорциональной, и все круги станут эллипсами).
Теперь добавляю слой heatmap, в ней выбираю нужные параметры (что является полем для взвешивания, радиус размытия и размеры точек). Если размер точек бессмысленный (то есть в моих широтах явно многовато колонок), пересоздаю проект (была выбрана другая проекция, и почему-то поменяв на ходу не получается сделать нормальную размерность теплокарт).
Для цветовой карты выбираю псевдоцвет и спектр из разных вариантов.
Для верности можно посмотреть гистограмму и выбрать так, чтобы на важном разрыве цвет резко менялся. Скажем, ниже - синее и голубое, выше - сразу зелёное и жёлтое.
Чтобы узнать значение гисторгаммы, она считает сумму в радиусе (если выбрана функция uniform, то есть простое скользящее среднее - или другое значение функции при плавном взвешивании), делённая на количество пикселей (то есть (радиус / размер пикселя) ^ 2 * pi).
После того как карта настроена, сохраняю в виде отрисованного изображения, формат tiff, потом конвертирую в png.