360 degree wind direction sensor

How about using a disc that rotates with the wind vane, but is mounted slightly off-centre? Then an LDR or phototransistor situated so that it sees an LED partly obscured by the disc. So that (for example) at N the light is almost completely obscured and at S it is almost completely unobscured. For degrees of obscuration between these, a second LDR or phototransistor and LED offset by 90 degrees from the first one can be used to disambiguate the reading.

Using 2 sensors in this way, I think it may be possible to make the system self-calibrating, since N S E and W can be positively identified from maximum and minimum readings.

Realise this has been still for some time, but.... With my previous experience with megasquirt fuel injection/engine management, i would definitely opt for using hall sensors. They are small, cheap, reliable and will work even if they are completely contained in silicone/glue, or they are hot or cold and still provide reliable readings at both high/low RPM. I'm starting to plan an arduino weather station, and i've been challenged the most by the wind speed. However, my current plan is to make an array of 8 hall sensors, each coupled to a different resistor, thus i should be able to read the direction by reading the analog value and only use 1 pin. on the arduino. I like the wind sensor designs where the direction and speed sensors are mounted on the same pole, and that's what i'm going to try to replicate. I think i'm gonna do a simple hall sensor solution for the wind speed as well. It's gonna run only three wires into the unit. Perhaps some sort of heating would be a good idea as well.

An anemometer measures wind speed, not direction.

Typically, in industry, you would use a rotary encoder that has a disk with (say) four rings that are blackened from inside to outside in a binary pattern, then use a led/photocell pair to detect the reflectance to get the 4 bits out. 4 bits would give 16 directions.

Probably could do the same with magnets and hall effect sensors.

I am looking to do this exact thing, but since I have the anemometer and temp/humidity all working on a Nano, all I need is direction. But am not finding anything like it on the market.

Something like this looks like it might be the way to go, don't know how much mechanical precision is required though.
http://www.allegromicro.com/~/media/Files/Datasheets/A1335-Datasheet.ashx?la=en