Data Assembly Complete

Milestone #2: Data Assembly

I'm comfortable saying I've completed this milestone. I've finished all the major features and have a nice interface for interacting with the downloaded data.

There are a few minor issues but none require a lot of time or brainpower to implement. Mostly nice-to-have enhancements like better error checking in my code that I feel compelled to do but aren't critical right now. I'll complete them as time allows.

The important thing is that I can now begin downloading the data I need without fear that I will need to download everything a second time later.

I made an interactive tool in matplotlib to visualize a spatial map of the locations I've downloaded data for. It looks like this:

In [1]:
%cd ..
%matplotlib notebook

from sequencing.sequencer import Graph

g = Graph('test')

g.init_plot()
/home/jim/Projects/ITP/pds
Plot showing the locations image data has been downloaded for. The X axis is from -100 to 60 meters and the Y axis is -125 to 50 meters. The points in the chart are approximately equally spaced points on two city avenues and the connecting streets, with neighboring points connected with a line.
In [ ]:
 

I have panorama data for each of the points. I can click on them to display the data for that location. I can also remove points from the graph and highlight points. I can use my mouse to zoom in and out. I can't demo that in a blog though, but trust me, its pretty neat.

The code is backed by the networkx library.

I need to add a few more features to the UI to make the interface complete. It's my first time using matplotlib's event handling and I'm quite impressed. I'll definitely use this again in the future.

Here's one of the assembled images:

In [2]:
img = g.generate('GycNqg9Vi2g3eqgn_iZt5A')

img
Out[2]:
Equirectangular projection showing the sky at the top, road at the bottom, and buildings in the center. There are some alignment or stitching problems in a few places.

You'll notice there's a problem with the image in a few locations. The panels don't quite line up. Look at the below zoomed in version:

In [3]:
img.crop((700, 100, 1200, 500))
Out[3]:
Square image of several buildings with what looks like a curved line with parts of the building above the line not properly lined up with the parts of the building below the line.

I tried hard to fix that but it doesn't seem to be fixable with this data. I am downloading multiple images and stitching them together. Mathematically the images I am requesting from Google should fit together exactly, but clearly they don't. Sometimes they do, but most of the time there are small errors.

I can't figure out why but I have ruled out an error in my code. If it was my code it would happen all the time and by a consistent amount, and that isn't the case. I tried requesting the data differently (different headings and pitches, etc) but I can't get it to go away. This seems to be a shortcoming of the data. I don't think it will be noticeable for what I plan to do with it though, so I'm not going to spend more time on it.

Next Steps

  • Download lots of image data
  • Finish UI and a few minor issues
  • Experiment with downloaded data using style transfers

Comments