【问题标题】:unable to SetField ogr OFTDate field, how do I set a OFTDate field无法 SetField ogr OFTDate 字段,如何设置 OFTDate 字段
【发布时间】:2020-06-29 16:46:39
【问题描述】:

我正在使用 OGR 从另一个特征创建一个特征并将其写出来,除了 ogr.OFTDate 字段之外,这一切似乎都有效。

out_feature_fields = [
    ogr.FieldDefn("enc", ogr.OFTString),
    ogr.FieldDefn('edition', ogr.OFTInteger),
    ogr.FieldDefn('updno', ogr.OFTInteger),
    ogr.FieldDefn('usage', ogr.OFTInteger),
    ogr.FieldDefn('status', ogr.OFTInteger),
    ogr.FieldDefn('issue_date', ogr.OFTDate)
]

layer_def = ogr.FeatureDefn()
for field_defn in out_feature_fields:
    layer_def.AddFieldDefn(field_defn)

#logging here gives a date 20200601
logging.info(f"in feature {out_feature.GetField('DSID_ISDT')}")

outfeature = ogr.Feature(layer_def)
outfeature.SetGeometry(coverage_geom)
outfeature.SetField('enc', out_feature.GetField('DSID_DSNM')[:-4])
outfeature.SetField('edition', out_feature.GetField('DSID_EDTN'))
outfeature.SetField('updno', out_feature.GetField('DSID_UPDN'))
outfeature.SetField('usage', out_feature.GetField('DSID_DSNM')[2])
outfeature.SetFieldNull('status')
outfeature.SetField('issue_date', out_feature.GetField('DSID_ISDT'))

# logging here gives null
logging.info(f"out feature {outfeature.GetField('issue_date')}")

这个日志

2020-06-29 17:40:08 INFO     in feature 20200611
2020-06-29 17:40:08 INFO     out feature None

所以我未能在我的输出中设置日期字段及其 Null,我认为在 ogr 中设置日期字段时我缺少一些东西,但我不知道什么,我的搜索工作到目前为止没有帮助。

【问题讨论】:

  • 尝试设置一个 datetime.date 并将其传入,没有用

标签: python date gdal ogr


【解决方案1】:

看来我必须这样设置日期

feature.SetField('issue_date',  f"{year}-{month}-{day}")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 2012-04-20
    • 2016-01-23
    • 2014-09-01
    • 1970-01-01
    相关资源
    最近更新 更多