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

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

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

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

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

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

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

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

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

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

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