UPDATE info set geom = ((point(info.lng::float , info.lat::float)))::geometry
时间: 2024-02-03 11:01:58 浏览: 18
这个 SQL 语句将 `info` 表中的 `lng` 和 `lat` 字段组成的点坐标转换为 `geometry` 类型的几何对象,并更新到 `geom` 字段中。
如果您执行这个 SQL 语句后发现 `geom` 字段的值为空,可能是因为 `lng` 或 `lat` 字段中存在非法值,比如空值、非数字值或者超出经纬度范围的值。您可以检查 `lng` 和 `lat` 字段的值是否合法,或者您可以提供更多信息,我可以帮您进一步排查问题。
相关问题
line 1275, in to_crs geom = df.geometry.to_crs(crs=crs, epsg=epsg)
这是一个代码行,它使用了 geopandas 库中的 to_crs() 方法,用于将地理数据的坐标系转换为指定的坐标系。其中,df 是一个 geopandas.DataFrame 类型的对象,它具有 geometry 列,存储了地理数据的几何信息。crs 和 epsg 参数用于指定目标坐标系,可以是字符串、Proj 对象或 EPSG 编码。该方法会返回一个新的 geopandas.DataFrame 对象,其中的 geometry 列已经转换为目标坐标系。
纠正这段代码的错误:#针对fid=126的文件过大,重新还原 final_geom=pd.read_csv('/content/drive/MyDrive/touying_fishnet_832_1km_final-cropWGS84-GLC30/Target_126'+'test10-15.csv') final_geom2=pd.read_csv('/content/drive/MyDrive/touying_fishnet_832_1km_final-cropWGS84-GLC30/Target_126'+'test16-20.csv') inter_1=pd.concat([final_geom.iloc[:,5:17],final_geom.iloc[:,23:41]], axis=1) inter_2=pd.concat([final_geom2.iloc[:,5:15],final_geom2.iloc[:,21:36]], axis=1) merge=pd.concat([inter_1,inter_2], axis=1) merge.columns base=pd.concat([base,final_geom.iloc[:,17:23]], axis=1) for i in ['crop','forest','impervious']: for j in range(10,21): c_name=str(str(i)+str(j)) # print(c_name) base[c_name]=merge.loc[:,c_name] base=pd.concat([base,final_geom.iloc[:,-3:]], axis=1) base.columns base.to_csv('/content/drive/MyDrive/touying_fishnet_832_1km_final-cropWGS84-GLC30/Target_126'+'test10-20.csv')
纠正后的代码如下:
```
# 针对fid=126的文件过大,重新还原
final_geom=pd.read_csv('/content/drive/MyDrive/touying_fishnet_832_1km_final-cropWGS84-GLC30/Target_126'+'/test10-15.csv')
final_geom2=pd.read_csv('/content/drive/MyDrive/touying_fishnet_832_1km_final-cropWGS84-GLC30/Target_126'+'/test16-20.csv')
inter_1=pd.concat([final_geom.iloc[:,5:17],final_geom.iloc[:,23:41]], axis=1)
inter_2=pd.concat([final_geom2.iloc[:,5:15],final_geom2.iloc[:,21:36]], axis=1)
merge=pd.concat([inter_1,inter_2], axis=1)
base=pd.concat([base,final_geom.iloc[:,17:23]], axis=1)
for i in ['crop','forest','impervious']:
for j in range(10,21):
c_name=str(i)+str(j)
# print(c_name)
base[c_name]=merge.loc[:,c_name]
base=pd.concat([base,final_geom.iloc[:,-3:]], axis=1)
base.to_csv('/content/drive/MyDrive/touying_fishnet_832_1km_final-cropWGS84-GLC30/Target_126'+'/test10-20.csv', index=False)
```
主要修改的地方有:
1. 在读取文件路径的时候,将字符串拼接符号 `+` 改为了 `/`。
2. 在最后一行保存文件时,加了参数 `index=False`,不保存行索引。
3. 在合并数据时,将字符串拼接符号 `+` 改为了 `str()` 函数。
4. 将变量 `merge` 与变量 `base` 合并时,加了参数 `axis=1`,表示按列拼接。