我正在python中编写一些操作原始相机数据的脚本.目前我正在使用DCRAW将.nef(尼康RAW格式)文件中的信息转换为.tiff文件,然后在photoshop中将其转换为sRGB .png,以便我可以使用Pillow读取像素强度.
有没有办法在python中解析.nef文件本身,而不是跳过这么多的箍?
我不关心速度,这主要是一个学习和演示练习.
我有一个函数可以将点网格输出为 x 和 y numpy 数组以进行插值,但是在进行插值之前,我想使用 Geopandas 与我的研究边界进行交集(否则我的一半插值点会落在海洋中)。
我正在生成这样的点:
import geopandas as gpd
import numpy as np
import matplotlib.pyplot as plt
from shapely.geometry import Point
x = np.linspace(0,100,100)
y = np.linspace(0,100,100)
x, y = np.meshgrid(x, y)
x, y = x.flatten(), y.flatten()
f, ax = plt.subplots()
plt.scatter(x, y)
plt.axis('equal')
plt.show()
Run Code Online (Sandbox Code Playgroud)
有没有一种有效的方法可以将这些 numpy 数组转换为shapely.Point([x, y])它们可以放置在 geopandas 地理数据框中?
这是我目前的方法:
interp_points = []
index = 0
y_list = yi.tolist()
for x in xi.tolist():
interp_points.append(Point(x,y_list[index]))
index += 1
Run Code Online (Sandbox Code Playgroud)
但似乎转换为列表然后迭代可能不是一个好的性能方法,我有大约 160,000 点。
我正在绘制一系列不同大小的重叠点,matplotlib从大到小(顶部最小),但我想知道是否可以配置点以使用soft light混合模式绘制,以便您可以通过堆栈查看点而不使用 alpha 混合。
我正在加载我的数据pandas,然后使用pandas绘图函数(使用matplotlib)进行绘图,就像这个简化的例子:
import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt
roads = gpd.read_file('roads.shp')
points = gpd.read_file('points.shp')
f, ax = plt.subplots()
roads.plot(ax=ax, linewidth=.5, color='#2D1B1B', zorder=1)
points.plot(ax=ax, column='color', markersize=size, zorder=2)
plt.axis('equal')
plt.show()
Run Code Online (Sandbox Code Playgroud)
(我夸大了重叠)
在此示例中,每个点都使用柔光混合模式进行混合,这使得可以稍微“看穿”每个点,而不会降低重叠白色的点的饱和度或增加透明度。这使您可以轻松看到中间较大、颜色较深的圆圈,而不会像 alpha 混合那样使白色背景上较小、颜色较浅的圆圈更难看到。
像这样混合重叠点的最常见方法是使它们透明,以便重叠点加起来更强烈的颜色,但是虽然这对于可视化密度是可取的,但在这种情况下没有意义并且看起来已经褪色和坏:
是否可以在 中使用柔光混合模式绘制点matplotlib?