GEM: A Cellular Automaton-based Geographic Modeler