Python 在轴具有不同比例(y轴对数比例和x轴线性比例)的数学空间中,查找点是否位于多边形内
我正在使用Python 在轴具有不同比例(y轴对数比例和x轴线性比例)的数学空间中,查找点是否位于多边形内,python,polygon,Python,Polygon,我正在使用封闭点函数使用多边形函数定位点是否位于多边形内。如果将两个轴的点绘制为相同比例,则一切正常,但是如果轴的比例不同,则功能无法正常工作,因为多边形应因不同比例而发生变化 左侧的图形具有线性比例上的两个轴,而右侧的图形具有对数比例上的y轴,这将生成具有不同形状的多边形。因此,在一个实例中绘制的点位于较低的多边形上,而在另一个实例中位于上面的多边形上,这是我试图在代码上实现的情况 with open('Robertson2009_Fr_Qtn.csv') as csvfile: # r
封闭点
函数使用多边形函数定位点是否位于多边形内。如果将两个轴的点绘制为相同比例,则一切正常,但是如果轴的比例不同,则功能无法正常工作,因为多边形应因不同比例而发生变化
左侧的图形具有线性比例上的两个轴,而右侧的图形具有对数比例上的y轴,这将生成具有不同形状的多边形。因此,在一个实例中绘制的点位于较低的多边形上,而在另一个实例中位于上面的多边形上,这是我试图在代码上实现的情况
with open('Robertson2009_Fr_Qtn.csv') as csvfile:
# read data
Rob_Zones_Data2009 = pd.read_csv(csvfile,
index_col = None,
header = 0,
nrows = 50,
skiprows = None) # start reading at accual data
# restore header names.
zone1 = Rob_Zones_Data2009[['Zone 1 Fr', 'Zone 1 Qtn']].apply(tuple, axis=1)
zone2 = Rob_Zones_Data2009[['Zone 2 Fr', 'Zone 2 Qtn']].apply(tuple, axis=1)
zone1 = zone1[~ zone1.apply(lambda x: np.isnan(x[0] or np.isnan(x[1])))]
zone2 = zone2[~ zone2.apply(lambda x: np.isnan(x[0] or np.isnan(x[1])))]
zone1 =Polygon(*zone1)
zone2 =Polygon(*zone2)
Classification2009 = np.ones(len(dataframe.Depth))
Classification2010 = np.ones(len(dataframe.Depth))
points = np.ones(len(dataframe.Depth))
dataframe_for_Classification = pd.DataFrame(dataframe, columns = ['Fr', 'Qtn'])
dataframe_for_Classification = dataframe_for_Classification.round(2)
points = list(zip(dataframe_for_Classification.Fr,dataframe_for_Classification.Qtn))
for i in range(len(dataframe.Depth)):
if np.isnan(points[i]).any():
Classification2009[i] = 0
continue
elif zone1.encloses_point(points[i]):
Classification2009[i] = 1
continue
elif zone2.encloses_point(points[i]):
Classification2009[i] = 2
continue
else:
Classification2009[i] = 111
关于如何在脚本上实现这一点,有什么想法吗