添加投影导入的 .asc 文件

Add projection imported .asc file

我正在尝试在 python 中导入 .asc 文件以使用 shapefile 对其进行剪辑。对于剪辑,我将使用:

import earthpy.clip as cl
clip = cl.clip_shp(shp_file, asc_file)

但是这行不通,因为我的 .asc 没有 CRS。这就是 .asc 的 header 的样子:

ncols         1900
nrows         1400
xllcorner     182900
yllcorner     326300
cellsize      10
NODATA_value  -999.990

这是我导入 .asc 文件的方式

import rasterio as rio
asc_loc = r'file.asc'
raster = rio.open(asc_loc)
print(raster.crs)

打印显示none

问题:如何将 CRS 添加到导入的 .asc 文件中? (最好使用 rastario 或 geopandas。)

您似乎缺少 .prj 文件。

如果您有 .prj 文件,它应该与您的 .asc 同名文件一起存储

raster_image.asc
raster_image.prj

.prj 文件将包含空间参考信息。

向栅格添加 CRS

import rasterio.crs

crs = rasterio.crs.CRS({"init": "epsg:19914"})  
with rasterio.open('/path/to/file.format') as src:
    src.crs = crs
print (src.crs)

如果这不起作用,并且由于 CRS 永远不会保存到 asc.file,

最好先从命令行使用 gdal_translate 转换为 Geotiff,然后再将栅格与 rasterio:

一起使用
gdal_translate -of "GTiff" -a_srs EPSG:19914 in.asc out.tif