Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
We are considering using ESRI's ArcGIS Engine to write an application with some GIS features. The GIS toolkit features that we are primarily concerned with are:
3D visualization: Blend elevation data with raster or vector data.
Embed GIS functionality within a custom UI / application (QT4 preferred)
Function without an internet connection (local data caching or geodatabase)
Create new features (point, line, polygon) and store them in a geodatabase.
Overlay images over map data and update them frequently.
Good interoperability with C++
Cross-platform: Windows, Mac, and Linux
The initial goals for this project are relatively limited, but will likely be expanded in the future -- doing some image processing that incorporates geospatial data, for example.
In addition to ESRI's ArcGIS Engine, we're also looking at using:
NASA World Wind
GRASS GIS
It appears that Intergraph has a large number of GIS software products, but it's not yet clear whether they sell an equivalent to the ArcGIS Engine toolkit.
Are there other options worth considering? Insights or opinions on the options already mentioned?
In addition to GRASS
Mapnik is a C++ cross-platform mapping toolkit that runs on Windows, Mac, and Linux
Quantum GIS can be customised in Python.
If you'd consider Java, you could use GeoTools or OpenJump
You could check out these lists of open source desktop GIS software: OSGeo and SpatialServer.
If you can drop the cross-platform requirement for Windows-only, then Manifold System would be a good choice. Very affordable and easy to use with modern development tools on Windows.
DotSpatial doesn't tick all of your boxes, but I know there have been some Mono+DotSpatial discussions. It might be worth checking on the state of that work.
Also checkout spatialite for a local cache.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I have been planning to start porting Chilli Source to Linux but haven't found clear info on what needs to be done to port Chilli Source to a new platform.
Is there a guide for it explaining how to do it or where to look?
-Where the platform specific implementations get "selected" in the code?
-What are the bare minimum systems that a platform needs to implement and the interface they must implement?
-How to add an extra target to the project generator?
-What needs to be pre-compiled as a library and where to place them?
Basically a guide possibly with one of the existing platforms as an example would be fantastic. If not just some highlights as to where in the git repo to look for answers would be welcomed.
Thank you!
A full tutorial describing how to port the engine to other platforms is a bit beyond the scope of what can be provided here, however I can give a quick overview.
A platform backend essentially consists of:
The entry point to the application
Window creation
OpenGL context creation
An implementation of each platform specific system.
The Windows backend is a pretty good example of this: you can see the entry point to the engine in Main.cpp and the window/context creation (using SFML) in SFMLWindow.cpp.
Platform specific systems are declared abstract, requiring each platform backend to implement their own version of it. All systems are created via the Create() factory method, using the creation of the platform specific concrete system is hidden from the user. A nice clean example of this is the DialogueBoxSystem.
Only default systems require implementation on every platform - those that are created in Application::CreateDefaultSystems(). Current, this would require implementation of:
PlatformSystem
Device
Screen
FileSystem
DialogueBoxSystem
Keyboard (Only required on systems which have hardware keyboards)
PointerSystem
DeviceButtonSystem
TextEntry
The Create() factory method should return nullptr on any platform which doesn't implement the system.
Finally, you'll need to build the CSBase library for the new platform - this provides all of the third party code used by the engine: libPng, rapidxml, etc.
Hopefully that should be enough to point you in the right direction. It's also worth checking out Fzort's fork of CS which he has had running on linux: https://github.com/fzort/ChilliSource
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
is there good tool to analyse some csv-formatted data files. is there any easy to use open source thing to display data from csv-files? (please don't mention excel...). most important is an easy file import (or maybe folder read-out) mechanism.
I found D3 to be the best solution: http://d3js.org/
An excellent tool is Weka. It accepts data in csv as well as arff format. It is free and open source, can be used to visualize as well as to run inbuilt machine learning algorithms to gain more insights into the data.
The best thing is that it is extremely light weight and easy to use, you don't need anything except support for java.
Get it from here. Once started, it looks like :
Now go to Explorer, open file and you are done!
IBM's Many Eyes project is a free web-based collaborative tool that has lots of charts available.
Better, but expensive, are Spotfire and Tableau. Both are amazing commercial applications for this, and Spotfire especially is incredibly easy to use to explore lots of visualizations side-by-side. Both have a desktop version and an online web player (Spotfire demo gallery, Tableau demo gallery). They are both highly scalable, into the millions of rows. Both have free trials.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I am learning the K-medoids algorithm so I am sorry if I ask inappropriate questions. As I know,the K-medoids algorithm implements a K-means clustering but use actual data points to be centroid instead of mathematical calculated means.
As I googled online, I found a lot of k-means tools such as GenePattern, geWengh,...etc but not the k-medoids ones. Some nice friends has showed me that at Matlab, there is also one written by some user. However, I am afraid that personal implemented tool may still have some bugs or limitations. Thus, I am wondering if there is some widely used reliable open source software/tools which uses actual data points as centroids to cluster. I need to find out the information about actual centroids so only returning clustering results is not enough. I prefer website online ones but if this is not the case, I am ok to install it to my local machine. Thank you very much,
A k-medoid implmentation in C is available in the C Clustering Library (source, Manual). (note that Cluster 3.0 is an extension of this library, and may not provide k-medoids)
From the manual:
In the C Clustering Library, three partitioning algorithms are available:
• k-means clustering
• k-medians clustering
• k-medoids clustering
k-medoids in mlpy, Machine Learning library in Python
k-medoids in Matlab
k-medoids in Java
k-medoids in C++
Software:
ELKI includes several k-means variants, including K-medoids and PAM.
GNU R includes on the "flexclust" package variants of k-means and on the "cluster" package.
Source: http://en.wikipedia.org/wiki/K-medoids
For Python, I've found a package that implements PAM and Clara: PyCluster
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
What is the best/user friendly GIS/arcGIS Java library for basic academic assignment?
I haven't used it myself - but you might start by taking a look at GeoTools:
http://www.geotools.org/
Sample app tutorial: http://www.ibm.com/developerworks/opensource/library/os-kmlservice/index.html?ca=drs-
Java Topology Suite is a good option for 2D spatial operations.
http://www.vividsolutions.com/jts/jtshome.htm
Esri released our Java Geometry engine under the open-source apache license.
https://github.com/Esri/geometry-api-java
It should cover most, if not all, of the geometry operations that you need.
There is also Geotoolkit - abridged as Geotk
Geotk is the reference implementation of GeoAPI 3.0 interfaces.
...
Geotk provides data structures for geographic data and associated
metadata along with methods to manipulate those data structures.
gdal for java using swig
http://www.gdal.org/
gdal is a translator library for raster and vector geospatial data formats that is released under an X/MIT style Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single raster abstract data model and single vector abstract data model to the calling application for all supported formats. It also comes with a variety of useful command line utilities for data translation and processing. The NEWS page describes the January 2017 GDAL/OGR 2.1.3 release.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I worked with StreamBase in a previous life, and found it to be very useful for processing streams. However I can't afford StreamBase for a project I'm doing now, but if there is an open-source alternative I'd like to give it a spin. My other solution was to hack together a StreamBase like application using SQLite, but that'll take some time, and I don't have that sort of time right now.
You might look into EsperTech: Event Series Intelligence
Quite different from StreamBase, but there is an OpenSource stream processing engine called Storm:
Storm is a distributed realtime computation system. Similar to how
Hadoop provides a set of general primitives for doing batch
processing, Storm provides a set of general primitives for doing
realtime computation.
I've not used it myself but it looks interesting.
Oracle CQL does more or less the same thing as StreamBase, minus the GUI stuff.
There are several open source options for stream processing in the meantime, e.g. Apache Storm, Apache Spark or Apache Samza.
However, they do not have the "things you found very useful" with StreamBase, probably. StreamBase has powerful but easy tooling for development, testing, deployment and monitoring.
Take a look at my blog post respectively article for more details about different stream processing and streaming analytics solutions (open source and proprietary):
Comparison of Stream Processing and Streaming Analytics Alternatives (Apache Storm, Spark, IBM InfoSphere Streams, TIBCO StreamBase, Software AG Apama)