Is there an issue when exporting eopatch to GeoTIFF on Windows machine?
This is my code:
for i in range(len(patchIDs)):
eop_path = os.path.join(str(PATCH_FOLDER), f'eopatch_{i}')
if os.path.exists(eop_path):
eop = EOPatch.load(eop_path)
export_tiff = ExportToTiff(feature=(FeatureType.DATA, 'BANDS'), folder=str(PATCH_FOLDER), config=config, crs=region.crs)
export_tiff.execute(eop, filename=f'eopatch_{i}.tif')
But I encountered the PermissionError like the following:
PermissionError Traceback (most recent call last)
~\miniconda3\envs\eo-learn\lib\site-packages\fs\osfs.py in makedir(self, path, permissions, recreate)
336 try:
--> 337 os.mkdir(sys_path, mode)
338 except OSError as error:
PermissionError: [WinError 5] Access is denied: b'D:\\'
During handling of the above exception, another exception occurred:
DirectoryExpected Traceback (most recent call last)
<ipython-input-74-9de9396c5c76> in <module>
4 eop = EOPatch.load(eop_path)
5 export_tiff = ExportToTiff(feature=(FeatureType.DATA, 'BANDS'), folder='./output/patches/', config=config, crs=region.crs)
----> 6 export_tiff.execute(eop, filename=f'eopatch_{i}.tif')
~\miniconda3\envs\eo-learn\lib\site-packages\eolearn\io\local_io.py in execute(self, eopatch, filename)
308 dst_width, dst_height = width, height
309
--> 310 filesystem, filename_paths = self._get_filesystem_and_paths(filename, eopatch.timestamp, create_paths=True)
311
312 with filesystem:
~\miniconda3\envs\eo-learn\lib\site-packages\eolearn\io\local_io.py in _get_filesystem_and_paths(self, filename, timestamps, create_paths)
76 paths_to_create = {fs.path.dirname(filename_path) for filename_path in filename_paths}
77 for filename_path in paths_to_create:
---> 78 filesystem.makedirs(filename_path, recreate=True)
79
80 return filesystem, filename_paths
~\miniconda3\envs\eo-learn\lib\site-packages\fs\base.py in makedirs(self, path, permissions, recreate)
1074 raise
1075 try:
-> 1076 self.makedir(path, permissions=permissions)
1077 except errors.DirectoryExists:
1078 if not recreate:
~\miniconda3\envs\eo-learn\lib\site-packages\fs\osfs.py in makedir(self, path, permissions, recreate)
343 else:
344 raise
--> 345 return self.opendir(_path)
346
347 def openbin(self, path, mode="r", buffering=-1, **options):
~\miniconda3\envs\eo-learn\lib\site-packages\fs\error_tools.py in __exit__(self, exc_type, exc_value, traceback)
88 if getattr(exc_value, "args", None) == 32: # pragma: no cover
89 fserror = errors.ResourceLocked
---> 90 reraise(fserror, fserror(self._path, exc=exc_value), traceback)
91
92
~\AppData\Roaming\Python\Python38\site-packages\six.py in reraise(tp, value, tb)
700 value = tp()
701 if value.__traceback__ is not tb:
--> 702 raise value.with_traceback(tb)
703 raise value
704 finally:
~\miniconda3\envs\eo-learn\lib\site-packages\fs\osfs.py in makedir(self, path, permissions, recreate)
335 with convert_os_errors("makedir", path, directory=True):
336 try:
--> 337 os.mkdir(sys_path, mode)
338 except OSError as error:
339 if error.errno == errno.ENOENT:
DirectoryExpected: path '' should be a directory
But, I didn’t find this issue when I try using Google Colab which basically uses Linux system I guess.