I would like to extract raster information (i.e. coordinate system, cell size) to excel file using python, how can I do that?
1 Answer
Here is one approach that uses Rasterio to extract the raster info and Pandas to write the data to a CSV file.
import rasterio
import pandas as pd
def spatial_resolution(raster):
"""extracts the XY Pixel Size"""
t = raster.transform
x = t[0]
y =-t[4]
return x, y
def get_crs(raster):
"""extracts the EPSG spatial reference"""
return raster.crs.to_epsg()
def write_to_csv(x_res, y_res, sr, out_csv):
"""writes the data to a CSV file"""
d = {'x_resolution':[x_res], 'y_resolution':[y_res], 'epsg':[sr]}
df = pd.DataFrame(data = d)
df.to_csv(out_csv)
if __name__ == "__main__":
raster = rasterio.open('/path/to/your/rasterdata.tif')
out_csv = '/path/to/your/csvfile.csv'
x_res,y_res = spatial_resolution(raster)
sr = get_crs(raster)
write_to_csv(x_res,y_res, sr, out_csv)
-
-
1@Merii, the spatial resolution would be based on your input spatial reference units.– Aaron ♦Commented Nov 6, 2020 at 16:24
-
Sorry if my question is obvious, but is there a way to determine what my input spatial reference units are, using rasterio?– A MeriiCommented Nov 7, 2020 at 19:28
-
1@AMerii Please open a new question for that--I think it would be a popular question. Otherwise, you can look it up based on the epsg: epsg.io/?q=3857– Aaron ♦Commented Nov 7, 2020 at 20:10
-
1Thanks for your replies, I have done as you recommended and posted the question on the link below: gis.stackexchange.com/questions/378627/…– A MeriiCommented Nov 8, 2020 at 3:08
rasterio