Thursday, April 23, 2015

Notes on UAVs, LIDAR, etc.

Lidar measurement

  • Velodyne's: Lidar Puck
    • 8k price
  • Velodyne's: HDL-32E
    • includes Garmin 
  • Routescene http://www.routescene.com/products/product/routescene-lidarpod-technical-specifications/
    • contains Velodyne's 35k usd sensor inside. but also spits out reasonable data. 
    • if they used the puck it would be a good e2e solution.
    • not sure if this is correct since hdl-32E already has much of that.
  • Autonomoustuff
    • box with 
      • LIDAR sensor
      • Inertial Measurement Unit
      • Processing Unit
      • Battery
      • Post processing software
    • Product good, price too large.

UAVs

Fixed wing

Rotary

  • DJI, S1000+, http://store.dji.com/spreading-wings/s1000-plus
    • weighs around 4kg, liftoff weight 11kg. 
    • price - 2.5 - 4.5k USD.
  • http://www.xactsense.com/products/
    • this is a running system as it should be. 
    • could be expensive; the puck is 8000USD, comparable DJI is around 3-4k, then that all is put together - unclear what is producing, but it could be .las files that we need. so 2k more. Total - around 14k of price. Then add some margin.

Data

  • National lidar dataset
    • "Production of a conterminous US 1-meter dataset will begin in early 2015 and will increase in geographic coverage as new high-resolution data are acquired."
      • this should satisfy all O' interest.

Thursday, April 2, 2015

Google maps/bing maps

It is hard to improve from simple areal photos. So what do you do? Well, you try to make some 3d picture of various indecency:
google here and bing here.


Not sure if they are using the LIDAR available in Redmond or maybe it is some form of 3d extrapolation from 2d images, but the crippling of images in both cases is quite annoying.

Monday, March 23, 2015

What's that?

What's that? 

Well, this is automatic vegetation (includes housing) from LIDAR data. Streets/fields are easy to be seen.
Formula used is the following: divide fields in 5x5m grid. Count the points that are < 0.5 meters, < 4 meters and rest. Then look at ratio of points between 0.5 and 4 meters divided by all points < 4 meters.
If ratio is > 0.5, all green, if > 0.3 - very green, if > 0.1 - somewhat green. If there are high points (> 4 meters), then make it a forest.

Sunday, January 25, 2015

HBOC Winter Champs

Results are here:
Day 1
Day 2

Route gadgets from Jan:

and also here (use the interface you like better):

Thanks to everyone who attended and volunteers:
Jan, who designed the course for second day,
All control pickers, including but not limited to : John, Roman, Ing, Eric. 

Especially large thanks goes to Dave Bishop who let us use his campground!

Here are maps:


Some race feedbacks:

Wednesday, December 17, 2014

Trying to find cliffs from point grid

The ask is simple: you are given vertices on a regular grid and need to return cliffs: lines where steepness gets larger than some given constant.
I tried algorithm like this:

  • mark all cells for which the borders are steep, 
  • connect 2 steepest sides with cliff segment
  • join segments where possible
End result is best described by this picture:
The small white lines are my calculated cliffs. The background is OCAD 11 generated steepness where black is 45degree steepness. My lines are calculated in a smaller subregion than the whole picture. 

This algorithm does not work without some additional improvements. Something better is needed.

Sunday, December 7, 2014

From Python to .OCD files

I have been experimenting with the OCAD libary from Open Orienteering Mapper and have written a small wrapper for it.
The wrapper is available here.
What can you do with it?
You can import symbols and polygons automagically from python into OCD files for OCAD.
Here is an example:
h_writer=CreateOcadWriter(c_double(1),c_double(1), c_double(10000))

col=AddColor(h_writer, c_char_p("some color"))
sym1=AddAreaSymbol(h_writer,c_char_p("symone"), 4100, col)
sym2=AddAreaSymbol(h_writer,c_char_p("symtwo"), 4010, col)

TYPE=(POINT*3)
t=TYPE()
array=((10,100),(100,10),(100,100))
for i in range(len(array)):
    t[i].x=array[i][0]
    t[i].y=array[i][1]

re = ExportArea(h_writer, t, 3, 4010)

WriteOcadFile(h_writer, c_char_p("c:\\projekti\\WriteODLL\\a.ocd"))
CleanWriter(h_writer)

What does this do?
  1. Creates a 1:10000 map with offset of (1,1)
  2. Create a color
  3. Creates 2 symbols (4100 is 410.0 and 4010 is 401.0)
  4. Creates a triangle of 401.0 symbol. 
  5. Writes to OCAD file.
The color is not a real color and the symbols are neither. To use this one would have to _import_ the OCD file into one which has real symbols. 
Why is this useful? If you want to experiment with larger data sets and visualize them in OCAD file, you need to automate it.

Saturday, November 29, 2014

Houghton Turkey Sprint: new map!

Today was an excellent day for O'. Snow covered the Houghton landfill and HBOC held a post Turkey Sprint race. No snow fell on us, but it was cold.

Volunteers: Ing and Will (checkpoints), Gunta (kids), Girts (drinks), Rick and Zarina (food).
Courses: Peteris
RG: Jan

Here is the new map. Ask me for PDF/OCAD version.

You can see splits.
Or you can see route gadget.