I’ve found a couple of usefull tools for importing URL based XML into Processing, and then querying/storing on a PostgreSQL DB.
SQLibrary is for getting Processing to communicate with a DB, and works with more than just PostgreSQL.
- installation instructions and download can be found here: http://bezier.de/processing/libs/sql/
- I have successfully been able to use this library to query the “iituim” DB
XMLElement is a Processing object that can be used to access URL based XML code, and to parse it. It acts as an XML representation on top of Processing.
- this tool can only only parse the UTF-8 (or plain ASCII) code inside of an XML file
- examples and built-in methods can be found here: http://processing.org/reference/XMLElement.html
I know this isn’t really related to the UIM initiative, but I feel compelled to share it anyways. It is AH-MAZE-ING!!!
Two researchers from Google’s “Big Picture” research group have created this artistic web app that uses publicly available wind-speed data from the National Digital Forecast Database to create a real-time animated map of the U.S. Head here to see the current map, and a gallery of archived maps that are pleasing to the eye: http://hint.fm/wind/index.html
National Digital Forecast Database : http://ndfd.weather.gov/technical.htm
Are we still meeting at SOM tomorrow?
My Prezi interactive presentation is available at: http://prezi.com/v_mxktjmbreb/uim-case-study/?auth_key=3f2839c1499d220997633ce847c6a4b52a35b7a7
This is a look at Agent Based Modeling and some of its real world Architectural and Information Modeling applications.
Agent Based Modeling is defined as: A class of computational models for simulating the actions and interactions of autonomous agents with a view to assessing their effects on the system as a whole. The models simulate the simultaneous operations and interactions of multiple agents, in an attempt to re-create and predict the appearance of complex phenomena. The process is one of emergence from the lower (micro) level of systems to a higher (macro) level. As such, a key notion is that simple behavioral rules generate complex behavior.
Please feel free to view this great TED conference video featuring Deb Roy talking about complex behavior learning: http://www.youtube.com/watch?v=VwgkT34g61w
There are numerous Agent Based Modeling environments that can be used for development, however I have chosen to focus on one. NetLogo is a multi-agent programmable modeling environment. It was authored by Urin Wilensky in 1999, and has been in continuous development ever since at the Center for Connected Learning and Computer-Based Modeling at Northwestern University (http://ccl.northwestern.edu/netlogo/docs/). It is particularly well suited for modeling complex systems that develop over time. Modelers can give instructions to hundreds or thousands of “agents” all operating independently. This makes it possible to explore the connection between the micro-level behavior of individuals and the macro-level patterns that emerge from their interaction. These characteristics make it particularly well suited for simulations involving that can access GIS data for modeling urban or geographical conditions (weather, traffic, infrastructure, etc.) with the reactionary behavior of people, materials, or adaptive building components.
NetLogo’s graphical user interface consists of a procedures tab, and interface tab. The procedures tab is more like the typical Integrated Development Environment (IDE), and is where you would do the coding for your agent based model. The interface tab shows the Observer Agent, Variable Inputs, and Command Center.
NetLogo uses four main types of Agentsets. Turtles are agents that can move around on the world surface, and draw. These simulate an agent that directly interacts with its environment. There can be multiple turtle subsets. These are known as Breeds. Patches represent square (in 2D) or box (in 3D) cells on the main view of the world. They have characteristics that turtles, and adjacent patches can respond to. Links represent relationships between turtles, such as parent-child. The Observer Agent is a single agent that has a view of the whole NetLogo “world,” and is used for running the main parts of the program as well as providing another way of interacting.
The real world applications are largely restricted to simulations for:
A fantastic example of the application of Agent Based Modeling used with GIS can be found in the paper titled, A multi-agent model linked to a GIS to explore the relationship between crop diversification and the risk of land degradation in northern Thailand highlands.
GIS data files corresponding to actual maps of the terrain being studied were created, and used to:
- Allocate fields to farms (field location, number of fields, and field size)
- Delimit small intrafield homogenous units
- Provide the spatial distribution of data regarding slope angle and length at the catchment level
These attributes represent an individual data set in the agent based model.
Agent Based Modeling can also be used to create and maintain Intelligent Building Systems (IBS). IBS’s can be described as a network of agents (microprocessors, sensors, actuators, computing nodes, etc.) brought together to form a set of cooperative components, and a system that can learn and adapt to its environment. It then selects the ideal adaptive effects to enact the desired performance for all building stakeholders (occupants, manager, contractors, developer, owner). To achieve this, they combine Agent Based Systems, Fuzzy Logic, Neural Networks, Sensors and Actuators.
Fuzzy logic is a form of many-valued logic; it deals with reasoning that is approximate rather than fixed and exact. In contrast with traditional logic theory, where binary sets have two-valued logic: true or false, fuzzy logic variables may have a truth value that ranges in degree between 0 and 1. Fuzzy logic has been extended to handle the concept of partial truth, where the truth value may range between completely true and completely false.
An artificial neural network (ANN), usually called neural network (NN), is a mathematical model or computational model that is inspired by the structure and/or functional aspects of biological neural networks. A neural network consists of an interconnected group of artificial neurons, and it processes information using a connectionist approach to computation. In most cases an ANN is an adaptive system that changes its structure based on external or internal information that flows through the network during the learning phase. Modern neural networks are non-linear statistical data modeling tools. They are usually used to model complex relationships between inputs and outputs or to find patterns in data.
A good example of a commercially available IBS agent is the Nest Thermostat (nest.com). The Nest Thermostat learns from your preferred settings, behaviors such as when you’re home or not, when you sleep, etc. Multiple units can also be tethered together to work in concert throughout your home.
One way of structuring an IBS would be around a main computing agent. This agent would receive data from all other system agents (i.e. adaptive façade, user, nest thermostat) and a database agent that houses not just previously recorded agent data, but also that from external sources such as live weather updates. It uses this information to gradually learn how to best administer the system. It then makes decisions on what each agent should do in order to run the IBS in a fashion that suits the needs of all stakeholders.
Peripheral agents receive the commands and act accordingly. The potential to receive data from the computing agent also exists. This way each agent can learn and make decisions autonomously if desired, creating a feedback loop between the agents.