I'm brand-new to GIS and relatively new to web services. I've found a ton of great resources on the web, but I'm having trouble addressing one specific issue:
One of the data layers on my planned map is dynamically generated in Python from some scattered and dynamic data (it is the "results" output of a computational weather-related model). I can generate this layer in chunks of arbitrary size and location, and output in any standard format (a numpy array, a .png, a geotiff (using GDAL), etc.), and I can expose a function such as:
def create_tile(width, height, ulc_lat, ulc_lon, lrc_lat, lrc_lon):
to hide the implementation details.
But, how do I get this layer to display in the map? The options that I can see right now are:
Serve as a WMS by creating a new Layer Type in a Python-based WMS server such as TileCache or TileLite ... this is probably what I'll try unless someone has a better idea.
Implement as a PythonDataSource in Mapnik. Problem: It's a new feature, requires custom compilation, and causes Mapnik to segfault even on the provided examples.
Somehow map filenames on disk (my_tile_z0_x3_y4) so that their contents is generated on-demand by the create_tile function above... I have no idea how this would be done, though.
Create the layer on disk ahead of time, and re-generate it often to keep the appearance of being "dynamic". (lots of disk space, needless CPU use, etc)
Does anybody have any suggestions? It seems like this must be a common problem, but I can't find any standard solution...
Thanks! Rob