pgplates专栏——Load/Save——加载和保存特征集合
根据其他文件创建一个包含特征子集的新文件
本示例中,我们将创建一个新的GPML文件,该文件只包含板块ID为801的海岸线
示例代码
import pygplates
input_feature_collection = pygplates.FeatureCollection("Global_EarthByte_GPlates_PresentDay_Coastlines.gpmlz")
features_in_plate_801 = []
for feature in input_feature_collection:
if feature.get_reconstruction_plate_id() == 801:
features_in_plate_801.append(feature)
output_feature_collection = pygplates.FeatureCollection(features_in_plate_801)
output_feature_collection.write("3-output_coastlines_801.gpml")
详解
使用pygplates.FeatureCollection对象可以加载和保存features
首先我们先从"coastlines.gpml"文件中获取GPlates海岸线features,将它们储存在pygplates.FeatureCollection对象中
features = pygplates.FeatureCollection('coastlines.gpml')
或者可以使用pygplates.FeatureCollection.read()函数
features = pygplates.FeatureCollection.read('coastlines.gpml')
然后创建一个空列表用于储存板块801子集
features_in_plate_801 = []
pygplates.FeatureCollection对象可以像序列一样进行处理,可以遍历所有海岸线features并挑选出板块801
for feature in features:
if feature.get_reconstruction_plate_id() == 801:
features_in_plate_801.append(feature)
我们需要新建一个pygplates.FeatureCollection对象用于保存板块801
output_feature_collection = pygplates.FeatureCollection(features_in_plate_801)
现在我们可以把该对象保存为gpml文件
output_feature_collection.write('coastlines_801.gpml')
从多个文件中获取的特征创建一个文件
在本例中,我们创建了一个新的GPML文件,其中包含来自一个文件的脊线和来自另一个文件的等时线。
示例代码
import pygplates
filenames = ["Muller_etal_2019_GeeK07_Ridges.gpmlz", "Seton_etal_2020_Isochrons.gpmlz"]
merged_features = []
for filename in filenames:
features = pygplates.FeatureCollection(filename)
merged_features.extend(features)
merged_feature_collection = pygplates.FeatureCollection(merged_features)
merged_feature_collection.write("3-output_ridges_and_isochrons.gpml")