有没有办法在python中合并两个重叠的GEOJSON多边形,返回一个合并的GEOJSON对象?
如果我有一个形状多线的对象,其中包含许多线,每条线的总长度为50km(从原点开始追踪),我想每隔X米沿多线插值(比如说100米),每100米返回一个匀称的点对象,如何我可以做到这一点吗?
这是我到目前为止所做的,但它只返回一个不同的点(当我知道它应该返回数千,在ArcMap中测试):
points = []
for x in range(100,50000,100):
x,y = multiline.interpolate(x).xy
xy = (x[0],y[0])
points.append(xy)
trim = list(set(points))
Run Code Online (Sandbox Code Playgroud)
以下是修剪包含的内容:
[(-90.5864707030599, 38.4688716729703)]
Run Code Online (Sandbox Code Playgroud)
如果我将多线分成单独的线,我可以获得更多的分(162),但仍然不是我应该生成的1000s:
lines_shape = []
# breaking out individual lines into shapely line strings
for line in multiline:
lines_shapes.append(gm.asLineString(line))
points = []
# interpolating points along each line
for line in lines_shapes:
for x in range(100,50000,100):
points.append(line.interpolate(x))
point_list = []
for point in points:
x,y = point.xy
xy = (x[0],y[0])
point_list.append(xy)
trim = list(set(point_list))
Run Code Online (Sandbox Code Playgroud)
和trim包含:
[(-90.4766827033434, 38.5972414054466), (-90.5461231698478, 38.5000688058116), …
Run Code Online (Sandbox Code Playgroud) 使用Pandas dataframe.to_csv()时,是否可以将缓冲区设置为“ 0”?我仔细阅读了文档,似乎不允许这样做。我在俯视什么吗?
编辑:我问,因为我正在输出的数据帧的大小范围从几百行到几千行(总是具有相同的7列),并且最终检查文件的后续过程有时会失败,因为有时它没有完成被写。
我当然可以引入一个延迟(3-5分钟),但是我宁愿不要随意降低我的代码的速度-我宁愿强迫该代码等待输出完成在继续之前,以及在使用open()写入文件时,能够将缓冲区值设置为0很好。
我在熊猫数据框中有两列应该是相同的。每列都有许多 NaN 值。我想比较这些列,生成包含 True / False 值的第三列;列匹配时为真,不匹配时为假。
这是我尝试过的:
df['new_column'] = (df['column_one'] == df['column_two'])
Run Code Online (Sandbox Code Playgroud)
以上适用于数字,但不适用于 NaN 值。
我知道我可以用在每一行中没有意义的值替换 NaN(对于我的数据,这可能是 -9999),然后当我准备好回显比较结果时将其删除,但是我想知道是否有我忽略的更 Pythonic 的方法。
如果您有这样的代码:
if (A > X && B > Y)
{
Action1();
}
else if(A > X || B > Y)
{
Action2();
}
Run Code Online (Sandbox Code Playgroud)
用A > X
和B > Y
,是否if-else-if
会执行梯子的两个部分?
我正在处理存在此问题的Java代码.我通常在C++中工作,但在两种语言中都是一个非常新的(和零星的)程序员.
这是我的问题的后续内容: Updating data Members of different obliged Class of the same base class inside a vector
我正在 C++ 中构建一个 3D 网格模型,它具有不同的单元类型,所有单元类型都存储在Grid类中的向量中。我定义了一个GridCell基类,并且还有几个派生类GridCell1、GridCell2、GridCell3等。
我将GridCell对象传递到模型进程中。传递的GridCell对象类型(其派生类)将与接收模型进程一起使用。换句话说,模型进程模型进程被设计(可能是不正确的),具有不同的函数,期望对适当的派生对象的数据成员进行操作。当然,他们看不到,因为对象是从 中拉出的,std::vector<gridCell*> gridCellVector
所以它只将该对象视为指向基类的指针。此时,我有两个选择:1)重写我的模型流程,2)使用static_cast或dynamic_cast向下转换传递的对象。
问题:在这种情况下,当我的模型进程(仅在正确类型的GridCell对象上运行)知道它们正在接收什么派生类时,我应该使用 static_cast 还是dynamic_cast?人们似乎真的不喜欢使用这些工具。为什么我应该远离使用这些?
我从 CSV 文件中读取了数千行,其中包含用于计算不同输出的数据。我读取这个 CSV 文件并将输入存储在 Pandas 数据框中。然后我用来itterrows()
循环数据帧。有时我的代码会失败,此时我希望读取原始文件,但在失败后的行中拾取进程。因此,当发生这种情况时,请设置我的代码,以便在进入 for 循环之前取消注释两行并将原始数据帧缩小到一定大小itterrows()
:
# slicing it and re-indexing when a restart is needed
df_slice = df.iloc[1292:,]
for index,row in df_slice.iterrows():
Run Code Online (Sandbox Code Playgroud)
然而,如果我如上所示对原始数据帧进行切片,“itterrows()”循环中的索引值将从 1292 开始,因此会从较小的切片数据帧顶部跳过 1292 个位置。如何让它从 0/1 开始?
我尝试重置索引:
# slicing it and re-indexing when a restart is needed
df_slice = df.iloc[1292:,]
df_slice.reset_index()
for index,row in df_slice.iterrows():
Run Code Online (Sandbox Code Playgroud)
但这并没有改变任何事情 - 蒸馏器中的索引for index,row in df_slice.iterrows():
停留在 1292,因此切片索引下降了 1292 个位置。
那么,我如何才能直接iterrows()
到某个起始行(在原始索引上)或正确地切片并重置较小数据帧的索引,以便能够从新的“顶”行开始并向下移动。
我有这个代码:
# Plotting everything
plot( p1, col= "lightgreen", xlim=c(-2.5,4.5), ylim=c(0, 700), main="Daily Total Precipitation for AR and Oct-May", xlab="ln(x)" , ylab="Frequency", xaxt = "n") # first histogram
plot( p2, col="red", xlim=c(-2.5,4.5), ylim=c(0, 700), xaxt = "n" , add=T)
# Adding in text labels on top of the bars
text(x, y, paste(round(percents,2),"%"), cex=0.50, pos=3, offset=0.3, col="black")
axis(side=1, at=breaks) # new x-axis
# parameter that needs to be set to add a new graph on top of the other ones
par(new=T)
plot(x, …
Run Code Online (Sandbox Code Playgroud) 我有几个小时采用这种格式,
72.345, 72.629, 71.327, ...
Run Code Online (Sandbox Code Playgroud)
作为在Python中执行计算的结果。似乎将它们转换为HH:MM:SS格式的最简单方法是使用datetime模块,如下所示:
time = str(datetime.timedelta(seconds = 72.345*3600))
Run Code Online (Sandbox Code Playgroud)
但是,这将返回一个带有天数的值,我不希望这样:
'3 days, 0:20:42'
Run Code Online (Sandbox Code Playgroud)
这是我的大脑得出我想要的最终值的最佳方法:
str(int(math.floor(time))) + ':' + str(int((time%(math.floor(time)))*60)) + ':' + str(int(((time%(math.floor(time)))*60) % math.floor(((time%(math.floor(time)))*60))*60))
Run Code Online (Sandbox Code Playgroud)
这太长了,可能没有必要。但这确实给了我想要的答案:
'72:20:41'
Run Code Online (Sandbox Code Playgroud)
有更好的方法吗?
如果我有一个代表我感兴趣的时间段的数字,例如代表 360 分钟或 6 小时的数字 360,如何将其转换为日期时间对象,以便我可以对其执行标准日期时间对象函数?
同样,如果我有一个格式为 00:30:00 的日期时间对象,代表 30 分钟,如何将其转换为普通整数变量?
我在if语句中使用map.find(key)和map.end()函数:
if( p_Repos->returnTypeMap().find(tc[0]) != p_Repos->returnTypeMap().end() )
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我得到一个Microsoft Visual C++运行时库错误,告诉我"表达式:列表迭代器不兼容".tc [0]只是一个字符串,我的地图中的键位置是一个字符串.
但是,它们应该兼容,对吗?
任何帮助是极大的赞赏.
谢谢,汤姆
编辑:根据这里找到的答案:在unordered_map中查找值,我会相信这应该是def.
第二次编辑:
这是returnTypeMap()函数:
std::unordered_map <std::string, std::pair<std::string, std::string>> returnTypeMap()
{
return typeTable;
}
Run Code Online (Sandbox Code Playgroud)
这是我的地图的定义:
std::unordered_map <std::string, std::pair<std::string, std::string>> typeTable;
Run Code Online (Sandbox Code Playgroud) 我正在迭代一个复杂的json对象作为字典加载到python中.下面是json文件的示例.感兴趣的数据被评论.
{
"name":"ns1:timeSeriesResponseType",
"nil":false,
"value":{
"queryInfo":{ },
"timeSeries":[
{
"variable":{ },
"values":[
{
"qualifier":[ ],
"censorCode":[ ],
"value":[
{
"codedVocabularyTerm":null,
"censorCode":null,
"offsetTypeID":null,
"accuracyStdDev":null,
"timeOffset":null,
"qualifiers":[
"P", # data of interest
"Ice" # data of interest
],
"qualityControlLevelCode":null,
"sampleID":null,
"dateTimeAccuracyCd":null,
"methodCode":null,
"codedVocabulary":null,
"sourceID":null,
"oid":null,
"dateTimeUTC":null,
"offsetValue":null,
"metadataTime":null,
"labSampleCode":null,
"methodID":null,
"value":"-999999",
"dateTime":"2015-02-24T03:30:00.000-05:00",
"offsetTypeCode":null,
"sourceCode":null
},
{
"codedVocabularyTerm":null,
"censorCode":null,
"offsetTypeID":null,
"accuracyStdDev":null,
"timeOffset":null,
"qualifiers":[ ],
"qualityControlLevelCode":null,
"sampleID":null,
"dateTimeAccuracyCd":null,
"methodCode":null,
"codedVocabulary":null,
"sourceID":null,
"oid":null,
"dateTimeUTC":null,
"offsetValue":null,
"metadataTime":null,
"labSampleCode":null,
"methodID":null,
"value":"-999999", # data of interest
"dateTime":"2015-02-24T04:00:00.000-05:00", # …
Run Code Online (Sandbox Code Playgroud) python ×8
pandas ×3
c++ ×2
dataframe ×2
datetime ×2
axis-labels ×1
csv ×1
dictionary ×1
dynamic-cast ×1
geojson ×1
if-statement ×1
inheritance ×1
iteration ×1
iterator ×1
java ×1
r ×1
shapely ×1
static-cast ×1
vector ×1