Placing objects using a relative coordinate system
Do this via a script, if you have the X, Y, Z coordinates of the base of each windmill, you can iterate through the list of coordinates and place a windmill at each coordinate.

Let's say you make a windmill object, or a group..

import bpy
import mathutils 
from mathutils import Vector

scene = bpy.context.scene

# if you have a group named windmill
group = bpy.data.groups['windmill']

# all coordinates will be offset by this vector, your new 'origin'.
custom_origin = Vector((3, 4, 0.2))   

coordinates = [
    (18.2807, 9.1404, -1.2686),
    (27.4211, 9.1404, 0.9514),
    (9.1404, 9.1404, -1.11),
    (18.2807, 31.9913, 2.1671),
    (18.2807, 13.7106, 0.0),
    (18.2807, 22.8509, 1.3214),
    (27.4211, 13.7106, 2.96),
    (27.4211, 22.8509, 2.1143),
    (31.9913, 22.8509, 3.7),
    (22.8509, 22.8509, 1.3214),
    (13.7106, 22.8509, 0.0),
    (4.5702, 31.9913, 0.0),
    (22.8509, 13.7106, 2.96),
    (13.7106, 31.9913, 2.4843)
]

for loc in coordinates:
    instance = bpy.data.objects.new('dupli_group', None)
    instance.dupli_type = 'GROUP'
    instance.dupli_group = group
    scene.objects.link(instance)
    instance.location = Vector(loc) + custom_origin  # adds them.