1、由postgis 读取geopandas数据
sql = ‘select * from “CellParament铜陵3Gis”’
sql=text(sql)
band3g=gpd.GeoDataFrame.from_postgis(sql, con=engineSourcesGis, geom_col=‘geom’)
band3g[‘Ci’]=band3g.Ci.apply(lambda x:str(x).split(’.’)[0])
2、读取的数据进行geom转换
customplace[‘geom’] = customplace[‘geom’].apply(lambda x: WKTElement(x.wkt, 4326))
3、在orm设置geom专属字段
class CustomPlaceReport(Base):
tablename
= ‘用户位置信令获取表’
seriesnum=Column(‘编码’, String,primary_key=True)
starttime=Column(‘开始时间’, String)
phonnum=Column(‘用户号码’, String,nullable=False)
Ci = Column(‘Ci’, String)
cellname=Column(‘小区名称’, String)
Ang=Column(‘方向角’, Float)
downtilt=Column(‘下倾角’, Float)
high=Column(‘天线挂高’, Float)
ticketid=Column(‘工单号’, String)
geom=Column(Geometry(‘POINT’), nullable=False)
4、录入postgis数据
用户位置信息数据入库
for i in range(len(customplace)):
print(’,’.join([str(customplace.iloc[i].ticketid),str(customplace.iloc[i].phonnum),str(customplace.iloc[i].starttime)]))
placereport = CustomPlaceReport(seriesnum=’,’.join([str(customplace.iloc[i].ticketid),str(customplace.iloc[i].phonnum),str(customplace.iloc[i].starttime)]),
starttime=str(customplace.iloc[i].starttime),
phonnum=str(customplace.iloc[i].phonnum),
Ci=str(customplace.iloc[i].Ci),
cellname=customplace.iloc[i].小区名称,
Ang=customplace.iloc[i].Ang,
downtilt=customplace.iloc[i].下倾角,
high=customplace.iloc[i].天线挂高,
ticketid=customplace.iloc[i].ticketid,
geom=customplace.iloc[i].geom)
customsession.add(placereport)
customsession.commit()
try:
customsession.commit()
print(‘位置记录已写入’)
except:
print(‘位置记录已存在’)