Используйте Rcartogram для объекта SpatialPolygonsDataFrame

я пытаюсь сделать то же самое, что и в этом вопросе,Картограмма + картографическая карта в R, но начиная с SpatialPolygonsDataFrame и надеясь получить такой же тип объекта.

Я мог бы сохранить объект как шейп-файл, использоватьscapetoadоткрой его и верни обратно, но яЯ предпочел бы иметь все это в R, чтобы процедура была полностью воспроизводимой, и чтобы я мог автоматически кодировать десятки вариантов.

я написал код Rcartogram на github и добавил свои усилияВот.

По сути, эта демонстрация создает SpatialGrid на карте, ищет плотность населения в каждой точке сетки и преобразует ее в матрицу плотности в формате, необходимом дляcartogram() работать на. Все идет нормально.

Но как интерполировать исходные точки карты на основе выходных данных?cartogram()

Здесь есть две проблемы. Во-первых, чтобы получить карту и сетку в тех же единицах, чтобы позволить интерполяцию. Второе - это получить доступ к каждой точке каждого многоугольника, интерполировать ее и держать все в правильном порядке.

Сетка указана в единицах сетки, а карта в проецируемых единицах (в случае примера longlat). Либо сетка должна быть спроецирована в longlat, либо карта в единицах сетки. Моя мысль состоит в том, чтобы сделать поддельный CRS и использовать его вместе сspTransform() функция вpackage(rgdal), поскольку это обрабатывает каждую точку в объекте с минимальной суетой.

Доступ к каждой точке затруднен, поскольку они находятся на несколько уровней ниже объекта SpPDF: object>многоугольники>Полигоны>линии>я думаю. Любые идеи, как получить к ним доступ при сохранении структуры карты в целом?

Ответы на вопрос(1)

Ваш ответ на вопрос