相关疑难解决方法(0)

Numpy:x和y数组的笛卡尔积指向单个2D点阵列

我有两个numpy数组,定义网格的x和y轴.例如:

x = numpy.array([1,2,3])
y = numpy.array([4,5])
Run Code Online (Sandbox Code Playgroud)

我想生成这些数组的笛卡尔积来生成:

array([[1,4],[2,4],[3,4],[1,5],[2,5],[3,5]])
Run Code Online (Sandbox Code Playgroud)

在某种程度上,由于我需要在循环中多次执行此操作,因此效率不高.我假设将它们转换为Python列表并使用itertools.product并返回到numpy数组并不是最有效的形式.

python numpy cartesian-product

134
推荐指数
8
解决办法
5万
查看次数

生成落在多边形或形状内的点网格的最快方法?

我在 python 中使用 shapely 并尝试在网格中生成均匀间隔的点,这些点在最快的 O(n) 时间内落在形状内。形状可以是任何闭合多边形,而不仅仅是正方形或圆形。我目前的做法是:

  1. 找到最小/最大 y 和 x 来构建一个矩形。
  2. 给定间距参数(分辨率)构建点网格
  3. 逐一验证这些点是否落在形状内。

有没有更快的方法来做到这一点?

# determine maximum edges
polygon = shape(geojson['features'][i]['geometry'])
latmin, lonmin, latmax, lonmax = polygon.bounds

# construct a rectangular mesh
points = []
for lat in np.arange(latmin, latmax, resolution):
    for lon in np.arange(lonmin, lonmax, resolution):
        points.append(Point((round(lat,4), round(lon,4))))

# validate if each point falls inside shape
valid_points.extend([i for i in points if polygon.contains(i)])
Run Code Online (Sandbox Code Playgroud)

示例形状和点

python polygon points coordinates shapely

5
推荐指数
1
解决办法
8751
查看次数

生成落在多边形内的经纬度坐标网格

我正在尝试将数据绘制到地图上。我想为特定城市的地图上的特定点生成数据(例如到一个或多个预先指定位置的运输时间)。

我在这里找到了纽约市的数据:https : //data.cityofnewyork.us/City-Government/Borough-Boundaries/tqmj-j8zm

看起来他们有一个可用的 shapefile。我想知道是否有一种方法可以在每个行政区的 shapefile 范围内对经纬度网格进行采样(可能使用 Shapely 包等)。

对不起,如果这是天真,我不是很熟悉处理这些文件——我这样做是作为一个有趣的项目来了解它们

python shapefile geo

3
推荐指数
1
解决办法
6105
查看次数