osm-bundler
osm-bundler copied to clipboard
Crashes with traceback to "no such file or directory".
System specs:
OS: Xubuntu 14.04 Desktop: XFCE 4.10 Package: osm-bunlder (whatever version is found here!)
Description of problem: On executing the RunBundler.py module using the following syntax:
python RunBundler.py --photos="/home/username/archives/projects.photogammetry/buckle"
...the following output and error messages are given:
---- Error messages begin ----
Cannot create output directory at
Working directory created:
BundlerMatching executable path: /media/WD1001_vol-03/programs/osm-bundler-master/software/bundler/KeyMatchFull
Sift executable path: /media/WD1001_vol-03/programs/osm-bundler-master/software/vlfeat/sift
Processing photo 'IMG_7205.JPG':
Copy of the photo has been scaled down to 1200x900
Traceback (most recent call last):
File "RunBundler.py", line 9, in <module>
manager.preparePhotos()
File "/media/WD1001_vol-03/programs/osm-bundler-master/osmbundler/__init__.py", line 167, in preparePhotos
self._preparePhoto(photoInfo)
File "/media/WD1001_vol-03/programs/osm-bundler-master/osmbundler/__init__.py", line 277, in _preparePhoto
self.extractFeatures(photo)
File "/media/WD1001_vol-03/programs/osm-bundler-master/osmbundler/__init__.py", line 343, in extractFeatures
os.chdir(self.workDir)
OSError: [Errno 2] No such file or directory: ''
---- Error messages end ----
Things I have tried: The library "libANN_char.so" was copied to "/usr/bin", its file permissions set for a normal user, and a path to "/usr/lib" was added to the end of the local ~/.bashrc file as follows:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/
Questions: 1.) Why are these errors happening? 2.) Is there any way to work arround these errors or fix them?
It seems that you have no permission to mkdir at /media/WD1001_vol-03/programs/ the procedure assume to create a 'output' directory at the current path as working directory
you may put the code directory to your home directory rather than /media/WD1001_vol-03/
you can see the code in *osm-bundler/osmbundler/init.py * at line 86~ 93,it may help you out
#self.workDir = os.getcwd() +'/output'
try:
os.mkdir('output')
self.workDir = tempfile.mkdtemp(prefix="osm-bundler-",dir=os.path.join(os.getcwd() ,'output'))
except OSError :
if os.path.isdir(self.workDir):
pass
else: print "Cannot create output directory at "+ self.workDir
Try to put the code in ~/
not in /media/WD1001_vol-03/ this may be a windows partition ?
i donot konw why it cannot mkdir. I give you an simple way may fix. just replace the code *osm-bundler/osmbundler/init.py * at line 86~ 93
#self.workDir = os.getcwd() +'/output'
try:
os.mkdir('output')
self.workDir = tempfile.mkdtemp(prefix="osm-bundler-",dir=os.path.join(os.getcwd() ,'output'))
except OSError :
if os.path.isdir(self.workDir):
pass
else: print "Cannot create output directory at "+ self.workDir
to
self.workDir = os.getcwd() +'/output'
and make a empty directory 'output' at the root of the code dirctory
have you notice that " Extracting features with the SIFT method from VLFeat library..." It seems there is no vlfeat sift execute
have a look at osm-bundler/osmbundler/defaults.py
featureExtractor = "siftvlfeat" #siftvlfeat siftlowe
change to featureExtractor = "siftlowe"
sorry for the bad documents ....
Depending on the os you use. For 64bit system you need to find the 32bit libs such as ia-32libs in Ubuntu. Without the 32bit libraries the executwble won't run. Hence no proccessed files generated which leads to the error no files or directory
In case anyone gets here after 2020, I resolved this issue with:
sudo apt-get install lib32z1
As stated above, 32bit libs did not exist.
Reference: https://support.humblebundle.com/hc/en-us/articles/202759400-Installing-32-bit-libs-on-a-64-bit-Linux-system