TypeError:类型为“CRS”的参数不可编辑

2024-06-25 23:17:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为一个地方创建一个网络,在这里我想检查我的朋友对我的可访问性

导入库(所有最新版本)

import warnings
warnings.filterwarnings("ignore")
import pandas as pd
from pandana.loaders import osm
import pandana
%pylab inline
from pyproj.crs import CRS
import numpy as np
import osmnx as ox
import networkx as nx
import peartree
import sys, os
import geopandas as gpd
import folium
import rasterio
from pandana.loaders import osm
from shapely.geometry import Point
import mplleaflet as mpll
from osgeo import ogr
from math import ceil, cos, pi
import geocoder
from shapely.geometry import mapping, Polygon, box
import fiona

使用点几何测量创建地理数据框架并定义CRS

df = pd.DataFrame(
  {'Name': ['Neil', 'Nitin', 'Mukesh'],
   'Area': ['Valsad', 'Silvasa', 'Daman'],
   'lat': [12.994270, 12.976576, 12.900404],
   'lon': [77.536782, 77.653850, 77.575158]})
friends= gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df.lon, df.lat))
friends.crs  =  "EPSG:4326"

定义使用pandana创建网络的方法

def get_bounds(place_gdf, buffer_fraction):
    bounds = emp_place_gdf.unary_union.bounds
    x_width = abs(bounds[2] - bounds[0])
    y_height = abs(bounds[3] - bounds[1])
    minx = bounds[0] - (x_width * buffer_fraction)
    miny = bounds[1] + (y_height * buffer_fraction)
    maxx = bounds[2] - (x_width * buffer_fraction)
    maxy = bounds[3] + (y_height * buffer_fraction)
    return(minx, miny, maxx, maxy)

def create_network(frnd_gdf, bounding_increment):
    coords = get_bounds(emp_gdf, bounding_increment)
    coords = (coords[1],coords[0],coords[3],coords[2])
    return(osm.pdna_network_from_bbox(*coords))

通过friendsgdf创建网络

G_BOIS = create_network(friends, 0.2)

我得到的错误Error I'm receiving

请帮助我纠正错误,如果需要更多信息,请发表评论


Tags: fromimport网络dfosmasbuffercoords