خانه / برنامه‌نویسی و ابزارها / خطای GDAL هنگام خواندن TIF با Python — CRS is None
A

خطای GDAL هنگام خواندن TIF با Python — CRS is None

ali_gis · 3 ماه،1 هفته پیش · برنامه‌نویسی و ابزارها GDAL Python rasterio CRS

داری با rasterio یه فایل TIF باز می‌کنم و CRS رو می‌گیرم ولی None برمیگرده. فایل توی QGIS درست نشون میده و CRS داره. مشکل از کجاست؟

```python
import rasterio
with rasterio.open('my_file.tif') as src:
print(src.crs) # None
```

203 بازدید
3 پاسخ
پاسخ راه‌حل
R
reza_dev 3 ماه،1 هفته پیش
#1

چند تا دلیل ممکنه:

۱. **CRS توی فایل Aux نیست** — گاهی CRS توی یه فایل `.prj` یا `.aux.xml` جداگانه‌ست که QGIS می‌خونه ولی rasterio نه. چک کن کنار TIF چه فایلایی هست.

۲. **فایل TIF قدیمیه** — بعضی TIF های قدیمی CRS embed نشده. باید manually ست کنی:

```python
from rasterio.crs import CRS
from rasterio.transform import from_bounds

with rasterio.open('my_file.tif') as src:
profile = src.profile
data = src.read()

profile.update(crs=CRS.from_epsg(4326))
with rasterio.open('fixed.tif', 'w', **profile) as dst:
dst.write(data)
```

۳. با GDAL مستقیم هم میشه:
```bash
gdal_translate -a_srs EPSG:4326 input.tif output.tif
```

M
mehdi_postgis 3 ماه،1 هفته پیش
#2

یه راه سریع‌تر با GDAL command line:
```bash
gdalsrsinfo my_file.tif
```
این بهت می‌گه CRS دقیقاً کجا ذخیره شده و مشکل از کجاست.

A
ali_gis 3 ماه پیش
#3

مشکل از فایل aux.xml بود! کنار فایلم یه .aux.xml بود که QGIS می‌خوند ولی rasterio نه. با روش دوم که گفتی CRS رو embed کردم و حل شد. ممنون رضا جان.

برای پاسخ دادن وارد شوید

ورود / ثبت‌نام