Как я могу эффективно измерить площадь каждого глобального объекта OSM (я имею в виду все объекты по всему миру)?Python

Программы на Python
Ответить
Anonymous
 Как я могу эффективно измерить площадь каждого глобального объекта OSM (я имею в виду все объекты по всему миру)?

Сообщение Anonymous »

Как мне улучшить свою стратегию? Кажется, расчеты займут как минимум неделю, и меня беспокоит возможность неожиданного выключения моего компьютера. Наконец, я хочу использовать Python или что-то еще для анализа всей статистики области, такой как график размера ранга.
Сначала я использую osm2pgsql для импорта файла PBF (planet.osm .pbf) в PostgreSQL с помощью osm2pgsql -d GlobalOSM -U postgres -H localhost -P 5432 -C 96000 --number-processes 56 --create --slim --drop -G --hstore -W --proj 54009 планета.osm.pbf . Теперь я использую PostGIS для расчета площади.
ALTER TABLE planet_osm_polygon ADD COLUMN area_m2 DOUBLE PRECISION;
CREATE INDEX idx_planet_osm_polygon_way ON planet_osm_polygon USING GIST(way);

DO $$
DECLARE
batch_size INTEGER := 10000;
batch_offset INTEGER := 0;
total_rows INTEGER := 0;
BEGIN
SELECT COUNT(*) INTO total_rows FROM planet_osm_polygon;

LOOP
UPDATE planet_osm_polygon
SET area_m2 = ST_Area(way)
WHERE osm_id IN (
SELECT osm_id
FROM planet_osm_polygon
ORDER BY osm_id
LIMIT batch_size OFFSET batch_offset
);

batch_offset := batch_offset + batch_size;

RAISE NOTICE 'Updated % rows out of %', batch_offset, total_rows;

EXIT WHEN batch_offset >= total_rows;
END LOOP;
END $$;


Подробнее здесь: https://stackoverflow.com/questions/793 ... ean-all-fe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»