Sometimes I have to put text on a path
Showing posts with label JavaScript. Show all posts
Showing posts with label JavaScript. Show all posts

Tuesday, March 14, 2023

from perceptron to machine learning and javascript online service

 


If u r a beginner in machine learning then try https://www.w3schools.com/ai/default.asp

this post is about some multi layer perceptron online calculators with javascript/typescript for educational purposes

One of the most famous: Tensorflow Playground 


1/NIST calculator (release 2020) has a lot a features from Tensorflow Playground (release 2018).

i luv so much this online service:

The GitHub deployment and repositories of Neural Network Calculator can be found at:

GitHub nn-calculator code: https://github.com/usnistgov/nn-calculator
GitHub nn-calculator deployment: https://pages.nist.gov/nn-calculator/

2/Tensorflow Playground group wrote a tiny neural network library that meets the demands of educational visualization. 


Deep playground is an interactive visualization of neural networks, written in TypeScript using d3.js. 

3/TensorFlow was developed by the Google Brain team. 

The initial version was released in 2015. Google released the updated version of TensorFlow, named TensorFlow 2.0, in September 2019. In 2023  Feb the release is 2.12. https://github.com/tensorflow/tensorflow


4/Tensorflow Playground is also based on some ideas of precursors:

the perfect Chris Olah’s articles about neural networks  (2014):  

And the work of karpathy when he was a PhD student at Standford (release 2014)…

https://cs.stanford.edu/people/karpathy/convnetjs/


a very simple perceptron calculator

an old online interactive book in english and in french (release 2014)

https://mlweb.loria.fr/book/en/perceptron.html


another simple perceptron calculator

The plan:
We're going to train a single neuron (perceptron) to linearly separate some 2D points.
All done in pure JavaScript, from scratch with no libraries
release 2021

A metric for how well the weights worked
Minimise this metric until it's good enough...

Wednesday, November 2, 2016

Javascript blog CMS : blogger




To build any webpage on internet there are three most important languages viz. HTML, JavaScript and CSS. JavaScript is one of the most commonly used client-side programming language that may communicate asynchronously (i.e. independently of other processes) to web browser.

If you are using BlogSpot.com blogger blog then you have lots of option to include JavaScript codes. It will depends on where you want to render it and for which purpose you are using that JavaScript files or codes.

See this present "ex-ample" blog.


http://www.superwebtricks.com/add-javascript-codes-to-blogger-template/

Monday, July 16, 2012

The top 10 ways to embed Google Earth content (trails, footpaths, interactive guide to fishing, walking, biking) on your site blog (special mention to blogger) with or without earth plugin and with/without earth API

A) without coding (no javascript)
3 categories of methods: without the need of plugin install (Google Earth plugin, for browsers) and without the google earth API or with this API (in this case, the client must install the  Google Earth plugin)

A-a) without the need of Google Earth plugin
A-b) without the google earth API 
A-c) with the google earth API 

B) with coding (javascript)

-----------------------------------------------
-----intro (not necessary if you just want a one-click service to directly embed in your site)

The Google Earth plug-in allows you to navigate and explore geographic data on a 3D globe using a web browser: http://www.google.com/earth/explore/products/plugin.html
If you want to embed the Google Earth plug-in on your website, visit the Google Earth API site to learn more: http://code.google.com/apis/earth/
Check out the recently revamped (2011) Earth API Developer's Guidehttp://code.google.com/apis/earth/documentation/

This plugin and this API may work correctly on all browsers (Internet Explorer 7.0+, mac and PC: Firefox 3.0+; Google Chrome 5.0+; Safari 3.1+, etc...) that support NPAPI with npruntime extensions (https://developer.mozilla.org/En/Gecko_Plugin_API_Reference:Scripting_plugins).
Plugins (or plug-ins) are shared libraries that users can install to display content that the application itself can't display natively. For example, Adobe Reader plugin (or Google earth plugin) lets the user open PDF files directly inside the browser. Plugins are written using NPAPI, the cross-browser API for plugins: https://developer.mozilla.org/en/Plugins

To install the Google Earth Plugin, browse to any page in which the plugin is included or at http://www.google.com/earth/explore/products/plugin.html (at this URL, you can see the version of your plugin).

This plugin and this API offer many services, see these 2 "ex-amples" (trail):
(google maps and google earth and a path from one start address and one end address)
http://www.themountainpulse.com/trail-maps-plus/grand-teton-national-park/ (The Mountain Pulse is an online resource for Jackson Hole’s outdoor community: mountain biking, hiking, pathways cycling, fishing, kayaking, lodging and more)

---after this intro, let's start!
from http://code.google.com/apis/earth/documentation/

To load the Google Earth Plugin in your web page, you need to:
  1. Load the Google Earth API.
  2. Create a DIV element to hold the plugin.
  3. Create functions to initialize the plugin.
  4. Call the initialization functions once the page has loaded.
try the hello: http://code.google.com/apis/ajax/playground/?exp=earth#hello,_earth



A) without coding (no javascript)


A-a) without the need of Google Earth plugin


A-b) without the google earth API 

A-c) with the google earth API 



B) with coding (javascript)

http://code.google.com/apis/ajax/playground/?exp=earth#hello,_earth

Tuesday, May 22, 2012

Spherical harmonics, meshes and some WebGL and JavaScript : toxiclibs.js, Processing.js, Three.js, ThreeNodes.js



1--------Spherical Harmonics Mesh Builder

Spherical Harmonics Mesh Builder is an example of Paul Bourke's "spherical harmonics" function for creating organic meshes. This example shows the use of Toxiclibs.js for creating meshes inside Three.js
(Technology: JavaScript, WebGL, toxiclibs.js, three.js).

Spherical harmonics are the angular portion of a set of solutions to Laplace's equation. Spherical harmonics are important in many theoretical and practical applications, particularly in the computation of atomic orbital electron configurations, representation of gravitational fields, geoids, and the magnetic fields of planetary bodies and stars, and characterization of the cosmic microwave background radiation. In 3D computer graphics, spherical harmonics play a special role in a wide variety of topics including indirect lighting (ambient occlusion, global illumination, precomputed radiance transfer, etc.) and recognition of 3D shapes.
The 19th century development of Fourier series made possible the solution of a wide variety of physical problems in rectangular domains, such as the solution of the heat equation and wave equation. This could be achieved by expansion of functions in series of trigonometric functions. Whereas the trigonometric functions in a Fourier series represent the fundamental modes of vibration in a string, the spherical harmonics represent the fundamental modes of vibration of a sphere in much the same way.
is called a spherical harmonic function of degree ℓ and order m.
For a given value of ℓ, there are 2ℓ+1 independent solutions of this form, one for each integer m with −ℓ ≤ m ≤ ℓ. 

Toxiclibs.js is an open-source computational design library ported to javascript by Kyle Phillips originally written by Karsten Schmidt for Java and Processing. Examples of the original library can be found at http://toxiclibs.org

Toxiclibs.js works great with Canvas, with SVG or any ordinary DOM element. with Processing.js, Three.js, or Raphael.js for SVG...

great example with additive waves

3--------three.js
JavaScript 3D library
The aim of the project is to create a lightweight 3D library with a very low level of complexity — in other words, for dummies. The library provides , and WebGL renderers.

--ThreeNodes.js
Threenodes.js is an attempt to create a dataflow environment in javascript and html5. It's a way to see what is possible to do in the browser. I had a little list of interesting javascript libraries to try but never had the chance to play with them.

The project is still in an experimental state but you can already see a live demo there: http://idflood.github.com/ThreeNodes.js/
coffeescript, compass and haml
These are languages that compile to javascript, css and html. Their syntax are much shorter than their equivalent and they offer some great features. If you work a lot with js, css or html you should definitely check these.
http://jashkenas.github.com/coffee-script/
http://compass-style.org/
http://haml-lang.com/
Three.js
The project is using webgl to render the scene. Three.js was obviously the 3d engine of choice. It provide many features like shaders, geometries, postprocessing filters and so on. A great project :)
https://github.com/mrdoob/three.js/
node.js
This is a javascript server. It's used to automatically compile the source files and serve them. I could have used some simple bash script to compile the files but found it would be interesting to use this for this "node" based project.
http://nodejs.org/
Require.js
The application was quickly growing and I needed a way to make it more modular. It's still not used at his full potential in threenode.js but already help make the code cleaner. One nice feature is that it's possible to require text files, or in this case little html template files.
http://requirejs.org/
--------------
Processing.js is the sister project of the popular Processing visual programming language, designed for the web. Processing.js makes your data visualizations, digital art, interactive animations, educational graphs, video games, etc. work using web standards and without any plug-ins. You write code using the Processing language, include it in your web page, and Processing.js does the rest. It's not magic, but almost.

Saturday, May 19, 2012

Molecular visualization Off-Line and On-Line : spiderGL, a JavaScript 3D Graphics library which relies on WebGL for realtime rendering

http://spidergl.org/index.php

code: http://spidergl.org/js/spidergl.js
http://sourceforge.net/projects/spidergl/

GALLERY:
http://spidergl.org/code.php

1/ Web application, a shader authoring tool:

http://spidergl.org/meshade/index.html
code generation
(input just a mesh, file= .obj)

VERY GOOD.
Try it online or download the zipped archive (an HTTP server is needed):


2/ Visualization Methods for Molecular Studies on the Web Platform

http://vcg.isti.cnr.it/Publications/2010/CADZS10/



Standard representation of molecular surface properties using color ramps and field lines (leftmost), the same properties drawn using complex shading techniques (center) and the electrical interaction of two proteins (rightmost), rendered on a Web Page by using SpiderGL and WebGL.


Molecular visualization Off-Line and On-Line


The solution of the 3D structure of myoglobin in 1958 by Kendrew [Kendrew et al. 1958] marked the beginning of the new era of protein structural biology. Since then, a large number of protein structures have been solved and today the Protein Data Bank counts over 60.000 entries [Berman et al. 2003]. With the availability of all these data and the advance of computer graphics technologies, many research groups have developed tools for the manipulation and visualization of 3D structures such as VMD [Humphreyet al. 1996], SPDBViewer [Guex and Peitsch 1997], Chimera [Pettersen et al. 2004] and PyMOL [Delano 2002]. Beside working on the atomic structure, most programs can nowadays also calculate surface features such as electrostatic potential (using, for example, tools like APBS [Baker et al. 2001] or DelPhi [Rocchia et al. 2002]) and hydropathy [Kyte and Doolittle 1982].

In addition to the many standalone visualization tools, there are also web viewers especially designed for molecular structures, such as Jmol [jmo 2002] and MDL Chime, which represent a simple way
to visualize molecules directly on browser. MDL Chime, used by the Protein Explorer website was gradually phased out in favor of Jmol, which is nowadays the most used plugin for molecular visualization, used by websites such as Proteopedia and RCSB PDB Protein Data Bank.
Following the advance of techniques for the generation of CG movies, in the last few years many different groups focused on the creation of animated movies depicting biological molecules and
cellular processes. The movies range from the simple representations of the mechanical functioning of a single protein, to complex events involving many subjects. These works are important scientific efforts and add to their educational value the bonus of rising interest in the general public to approach biology. Some of these examples are collected on websites [McGill 2010; SCIVIS 2005].

3D Content on Web



The Virtual Markup Modeling Language (VRML) [Raggett 1994] (then replaced by X3D [Don Brutzmann 2007]) was proposed as a text based format for specifying 3D scenes in terms of geometry and material properties and for the definition of basic user interaction. The format itself was a standard, but the rendering in the web browser was relaying on specific plugins. The Java Applets are probably the most used method to add dynamic content, not necessarily 3D, in the web browsers. The
philosophy of Java applets is that the URL to the applet and its data are put in the HTML page and then executed by the Java Virtual Machine, a third part component. The implementation of JVM
on all the operating systems made Java applets ubiquitous and the introduction of binding to OpenGL such as JOGL [JOG ] added control on the 3D graphics hardware. A similar idea lies behind the
ActiveX [Microsoft Corporation 1996] technology, developed by Microsoft from 1996. Unlike Java Applets, ActiveX controls are not bytecode but dynamic linked Windows libraries which share
the same memory space as the calling process (i.e. the browser), and so much faster to execute. These technologies enable the incorporation of 3D graphics in a web page but they all do it by handling
a special element of the page itself with a third party component.


WebGL [Group 2009b] is an API specification produced by the Khronos group [Group 2009a] and, as the name suggests, defines the JavaScript analogous of the OpenGL API for C++. WebGL
closely matches OpenGLjES 2.0 and, extremely important, uses GLSL as the language for shader programs, which means that the shader core of existent applications can be reused for their
JavaScript/WebGL version. Since WebGL is a specification, it is up to the web browsers developer to implement it. At the time of this writing, WebGL is supported in the nightly build versions of the most used web browsers (Firefox, Chrome, Safari), and a number of JavaScript libraries are being developed to provide higher level functionalities to create 3D graphics applications. For example WebGLU [DeLillo 2009], which is the WebGL correspondent of GLU [OpenGL ARB ], provides wrappings for placing the camera in the scene or for creating simple geometric primitives, other libraries such as GLGE [Brunt 2010] or SceneJS [Kay 2009] uses WebGL for implementing a scene graph based rendering and animation engines.

Implementation spiderGL


Looking at a webpage with dynamic SpiderGL content, it is possible to see that all of the page logic is defined in the scripting part of the HEAD section, while on the BODY section there is just the page
structure and the interface elements that will be used for user interaction (like buttons, text areas and other controls). Among these elements, the most important is an html canvas object, that is the place where the WebGL layer does the on-screen rendering. ("< " are transformed : "[")

[canvas id="SGL_CANVAS" style="border: 1px solid gray"  width="900" height="600"][/canvas]



This canvas is registered as the output area at the end of the scripting; a specific function connects the various events of the canvas to a script object.


v a r  glMolViewer = new SpiderGLMolViewer ( ) ;
sglRegisterCanvas("SGL_CANVAS" , glMolViewer , 3 0 . 0 ) ;




The glMolViewer object is the main actor for the scene setup and rendering of our molecular visualization. The structure of this object employs the event handling subsystem provided by SpiderGL, which is inspired from the one used by the GLUT library [Kilgard ]. Each event coming from the canvas triggers a specific function with a given name and parameters; SpiderGL exploits the JavaScript language feature to give the possibility to dynamically add or remove listeners and redirect events. In this simple example, the only listener is the main object itself. (...)

This development process is straightforward for someone with an experience in graphical programming, while may prove to be difficult for users with a different background, like biology, physics or chemistry. This kind of setup is for sure more difficult to master with respect to setup of other existing platforms, like Jmol which, true to their nature, provide much simpler (but restrictive) access to their scene graph, with specific functions to import data and a series of predefined rendering modes. However, the gain in terms of flexibility and expressive power vastly compensate the initial steeper learning curve. Moreover, the learning of this technology is made easier by the possibility of initially use the higher level structures and functions implemented by SpiderGL to easily setup a basic visualization scheme and then start playing with lower level functions to obtain more complex effects. It is also important to note that most of the available JavaScript utility/UI libraries on the net may be used in conjunction with SpiderGL, adding more ready-made components to assemble a powerful, interactive, webpage.



3/ landscape refelction/refraction on a cup:

http://spidergl.org/example.php?id=12

This example uses how to use cube maps and spherical harmonics to render objects with a natural light effect. GOOD.

4/techno

SpiderGL: A JavaScript 3D Graphics Library for Next-Generation WWW


a web front-end that automates the processing of MRI and Diffusion MRI

http://www.chromeexperiments.com/detail/brain-surface-and-tractography-viewer/?f=

The Brain Surface and Tractography Viewer was developed at Children’s Hospital Boston in the Fetal-Neonatal Neuroimaging and Development Science Center as part of a web front-end that automates the processing of MRI and Diffusion MRI. This application allows researchers to very rapidly explore processed MRI data in real-time within the web browser using WebGL. The application renders cortical surface reconstructions and fiber tracts generated by FreeSurfer and the Diffusion Toolkit, two automated brain imaging tools developed at the MGH Martinos Center for Biomedical Imaging. The user can view the gray-white surface and pial surface along with various curvature measures. Further, the fiber tracts are registered to the cortical surface and can be viewed inside the brain surfaces.

Technology:
WebGL, JavaScript, jQuery

Saturday, November 12, 2011

google maps, fractals; fractal renderer in HTML 5; it is now possible to render in a browser fractals like Julia sets almost instantly;

Google launched (Jan 2011)  Julia Map on Google Labs, a fractal renderer in HTML 5. Julia sets are fractals that were studied by the French mathematician Gaston Julia in the early 1920s. Fifty years later, Benoît Mandelbrot studied the set z2 − c and popularized it by generating the first computer visualisation. Generating these images requires heavy computation resources. Modern browsers have optimized JavaScript execution up to the point where it is now possible to render in a browser fractals like Julia sets almost instantly.

Julia Map uses the Google Maps API to zoom and pan into the fractals. The images are computed with HTML 5 canvas. Each image generally requires millions of floating point operations. Web workers spread the heavy calculations on all cores of the machine.

We hope you will enjoy exploring the different Julia sets, and share the URLs of the most artistic images you discovered. See what others have posted on Twitter under hashtag #juliamap. Click on the images below to dive in to infinity! (Supported on Chrome 8, Firefox 3.6, Safari 5 and above).


http://juliamap.googlelabs.com/

Turn up the power of your Fusion Tables with Dynamic Styling; google maps

Fusion Tables allows you to share large tables of spatial data and render them on a map in a way that performs consistently well across all browsers, on desktop and mobile. The way in which the data is styled on the map, the markers used for points, the colours and stroke widths used for polylines and polygons, can be defined by the owner of the table in the Fusion Tables application, or using the newFusion Tables Styling and InfoWindows API. However only the owner of the table can define the styling in this way, and styling for any single table is fixed.

At Google I/O we introduced Dynamic Styling of Fusion Tables layers. This allows the styling rules used for displaying a table in a Maps API application to be defined from JavaScript, and changed dynamically. For example you can use this to switch between rendering different data sets in the same table, or giving users control over which subset of the data is highlighted, as in the below example based on a public table of Chicago Homicides data:

In order to ensure the continued reliability of the Fusion Tables layer, we are also introducing some limits on the number of layers that can be used, and the complexity of styling. The Maps API now permits up to five Fusion Tables layers to be added to a map, one of which can be styled with up to five styling rules.
For information and code samples of how to apply dynamic styling to Fusion Tables, see our documentation, and for further assistance I recommend the Google Maps JavaScript API V3 forum. It’s great to see the creative ways in which Fusion Tables Layer is being used, and we hope this new flexibility will drive even more inspiring and informative Maps API applications.


Ref: http://googlegeodevelopers.blogspot.com/search?updated-max=2011-05-26T12%3A42%3A00-07%3A00&max-results=7

blogger, google maps, geoblogs: a "gadget" that maps your posts; BlurbBits

Right now users of Blogger  can geotag their posts.
We need a gadget that maps our posts. 


Here a solution without the "add location" function.

See http://svbillabong.blogspot.com for a dynamic geoblog map example, interactive maps are also available through menu selection at the top.
http://blurbbits.blogspot.com 


I have not developed a standard XML gadget YET and you've been copied on the many reasons that I think that generating a blog based interactive sidebar map gadget is a REALLY bad idea. My mapping
solutions can be seen in the blog link mentioned above (http://svbillabong.blogspot.com).. both interactive blog navigation maps (could be a sidebar gadget link) and the geoblog dynamic maps (both sidebar "Geoblogs on this page" gadget maps and popup versions).
----------

BlurbBits (an introduction)

Sharing your travel adventures can be a time consuming experience. Writing updates, journals, editing/organizing and selecting photos/videos, adding captions, mapping locations, tracking your travels and then formatting them all for a website, blog or email can sometimes become overwhelming. We've been Sailing for 5 years and have over 25,000 photos, 30,000 miles of GPS tracks, blogs, websites and videos, so we understand the need/importance of easy to use methods for sharing your travel adventures.

BlurbBits is a FREE set of utilities designed to help ease the entire process, while providing easy to share viewing/mapping options even while you are disconnected from the internet (95% of our Sailing Blog posts were emailed). We are trying to revolutionize self published Travel Blogs, Sailing Blogs, and Photo blogs by using existing best in class functionality (Blogger, Google Maps, Picasa, Flickr, YouTube etc).
Spend your time sharing the moments, not formatting them.


http://blurbbits.blogspot.com/2009/01/blogger-travel-blogs.html

---------
BlurbBits can be added to a website, blog post or sidebar and emailed or linked into existing sites and social networks to optimize your sharing options.

To see BlurbBits in action visit svbillabong.blogspot.com. To learn more check outBlurbBits basics, our getting started overview or if you are already familiar with Blogger, the geoblogging process, if you can send an email.. you can blog and map!! Update: the easiest way to get started with Blogger is to add the Dynamic GeoBlog gadget and addLat/lng text to the Blog posts you want to map, we'll take care of the rest. Check out our utilties and other examples.


If you use Blogger you may already know about the Mail-To-Blogger interface. We write 95% of our blogs this way. We use a lat/lng string to define our location and can even send a small (250x250) photo if the email utility supports attachments (this gives people an update, a location map and optional photo).

Forum:
https://groups.google.com/group/bloggerdev/search?group=bloggerdev&q=geo*&qt_g=Search+this+group

Google Data client libraries are available to help you write client applications that use the Blogger Data API

http://code.google.com/apis/blogger/code.html


For each language, the client library provides tools and an abstraction layer, letting you construct queries and use response data without having to create HTTP requests or process HTTP responses by hand. Each client library provides classes that correspond to the elements and data types that the API uses. Each client library also provides extensions for specific Google services that have Data APIs.





JavaScript client library

The JavaScript client library provides full read/write capabilities from within JavaScript. Read-only access is also available via raw JSON.

Google Fusion Tables and geospatial data; managing-and-visualizing-your-geospatial-data-with-fusion-tables

Google Fusion Tables (https://www.google.com/fusiontables) is a modern data management and publishing web application that makes it easy to host, manage, collaborate on, visualize, and publish data tables online. Fusion Tables allows for import of geospatial data to quickly and easily display that data on a Google Map.

The Fusion Tables team has been working hard to enrich what Fusion Tables offers for customization and control of the Google Map visualizations. Two very exciting announcements were made at Google I/O during the Fusion Tables session on Managing and visualizing your geospatial data with Fusion Tables (http://www.google.com/events/io/2011/sessions/managing-and-visualizing-your-geospatial-data-with-fusion-tables.html). These announcements include the release of the Info Window and Styling in the Fusion Tables API and Fusion Table Styling in the Google Maps API.


Fusion Tables Styles in the Google Maps API


http://code.google.com/apis/maps/documentation/javascript/overlays.html#fusion_table_styles


Fusion Tables Styles further increases the possibilities of map customization. Rather than applying a style to a table via the API or UI, styling can now be introduced on the client side using the Google Maps API. There are many benefits to Fusion Tables Styles:
It allows for dynamic styling of map features.
It’s opens up the possibility for styling tables with multiple attributes.
You can give your users the opportunity to decide what range of styles works best for your data.
Third party developers can now generate visualizations of your data that differ from your own, which makes sharing your data more powerful and useful.
Fusion Tables styles are available now! Read more about how to use Fusion Tables Styles in the Fusion Tables Layer section (http://code.google.com/apis/maps/documentation/javascript/overlays.html#FusionTables) of the Google Maps API documentation.

Simon Rogers, who joined us for the Fusion Tables I/O session to talk about how the UK Guardian Datablog uses Fusion Tables, has been making great use of Fusion Tables Styles.
Here’s one of the Guardian’s latest examples (http://www.guardian.co.uk/news/datablog/interactive/2011/jun/30/uk-population-mapped).
If you’re interested in creating a map similar to the Guardian’s, we have developed a template for plug-and-play (http://gmaps-samples.googlecode.com/svn/trunk/fusiontables/dynamic_styling_template.html).



Ref.
http://googlegeodevelopers.blogspot.com/2011/07/geo-apis-summer-learning-series.html

bikemap.net: a very good application of Google elevation API.

Map your favorite tracks - or find new route ideas. For training, holidays or excursion planning. Currently there are 587,606 Bike routes (DATA@nov 2011). 
http://www.bikemap.net/#lat=-31.35364&lng=-158.20312&zoom=1&type=2

Bikemap.net, built by Toursprung from Austria and Germany, allows cyclist to view and share bicycling routes from all over the world. Users can rate routes, mark their favorites, send the GPS coordinates to a mobile device, suggest changes to routes, and even share the routes on social media sites. Each route includes details about the distance, surfaces, and difficulty. To help cyclists better understand the terrain the site has an interactive elevation bar.

Google Elevation API

Example: http://www.bikemap.net/route/489685#lat=45.24395&lng=4.42268&zoom=12&type=2

Friday, September 2, 2011

List of popular file formats and filter encoding for Map mashups and Geographic information systems; converters of waypoints, tracks, routes



Some popular file formats:

Latitude and longitude are expressed in decimal degrees using the WGS 84 datum. Elevation is recorded in meters. Dates and times are not local time, but instead are Coordinated Universal Time (UTC) using ISO 8601 format.
Find your references in any number of formats:
http://spatialreference.org/
http://spatialreference.org/ref/ it's a listing of spatial references (EPSG) and an interface to search for spatial references. EPSG codes are numeric codes associated with coordinate system definitions. For instance, EPSG:4326 is geographic WGS84.
Projections (a mathematical transformation of the surface of a sphere (3D) onto a 2D plane) are ordered roughly chronologically by type: http://www.radicalcartography.net/?projectionref
Spherical Mercator (http://en.wikipedia.org/wiki/Mercator_projection) is used to describe the PROJECTION used by many commercial API providers.
Proj4 is a library for projecting map data (used by MapServer, GDAL and a multitude of other Open Source GIS libraries): http://trac.osgeo.org/proj/

for all standards: http://www.opengeospatial.org/standards


APR – ESRI ArcView 3.3 and earlier project file
MXD – ESRI ArcGIS project file, 8.0 and higher

http://resources.arcgis.com/
http://www.arcgisblog.com/content/2010/01/arcgis-10-package-mxd-and-all-its-data-map-package

http://support.esri.com/en/downloads/samples-and-utilities/view/productid/78/metaid/1682

SHP – ESRI shapefile
http://en.wikipedia.org/wiki/Shapefile

Shapefiles spatially describe geometries: points, polylines, and polygons and associated attribute information. A shapefile is a digital vector storage format. It was introduced with ArcView GIS version 2 in the beginning of the 1990s.

DEM – USGS DEM file format:
http://en.wikipedia.org/wiki/USGS_DEM
Sources for USGS DEMs:
http://www.geobase.ca/geobase/en/data/cded/index.html Review (in english and french; download and view) a detailed description of the Canadian Digital Elevation Data. Product specifications, metadata and other supporting documentation are also available.
http://dds.cr.usgs.gov/pub/data/DEM/250/
obtain DEM’s via the National Eelevation Dataset(NED) server at: http://ned.usgs.gov

E00 – ARC/INFO interchange file format
http://freegeographytools.com/category/e00

GeoTIFF – Geographically located raster data
http://en.wikipedia.org/wiki/GeoTIFF
GeoTIFF is a public domain metadata standard which allows georeferencing information to be embedded within a TIFF file (6.0). http://trac.osgeo.org/geotiff/
World TIFF – Geographically located raster data: text file giving corner coordinate, raster cells per unit, and rotation


TAB – MapInfo Table file format
http://en.wikipedia.org/wiki/MapInfo_TAB_format
It's  a geospatial vector data format.
http://mitab.maptools.org/

DTED – Digital Terrain Elevation Data
http://en.wikipedia.org/wiki/DTED
It's a standard of digital datasets which consists of a matrix of terrain elevation values. This standard was originally developed in the 1970s to support aircraft radar simulation.
http://www.fas.org/irp/program/core/dted.htm
-----------------
-geoJSON
The GeoJSON format specification was finalized in June 2008.
http://en.wikipedia.org/wiki/GeoJSON
http://geojson.org/geojson-spec.html
GeoJSON is a geospatial data interchange format based on JavaScript Object Notation (JSON).
 In fact, every GeoJSON data structure is also a JSON object, and thus JSON tools can also be used for processing GeoJSON data.
http://www.geowebguru.com/articles/97-technical-overview-geojson
JavaScript Object Notation (JSON), and the terms object, name, value, array, and number, are defined in IETF RTC 4627, at http://www.ietf.org/rfc/rfc4627.txt
http://en.wikipedia.org/wiki/JSON
JSON is simply a mixture of JavaScript object and array literals without variable definitions.
JSON, is a text-based open standard designed for human-readable data interchange. It is derived from the JavaScript scripting language for representing simple data structures and associative arrays, called objects. Despite its relationship to JavaScript, it is language-independent, with parsers available for most languages.The JSON format is used primarily to transmit data between a server and web application (serving as an alternative to XML;  it is generally more compact than XML).

Spatial data format types supported in GeoJSON include points, polygons, multipolygons, features, geometry collections, and bounding boxes, which are stored along with feature information and attributes. The geometries and their properties will have a parent object.
GeoJSON also allows specifying a geographic coordinate system, using the OGC crs (coordinate reference system) property (preferred) or with an EPSG code. If a crs is not defined, GeoJSON will use the WGS84 geoid by default.
GeoJSON is supported by numerous mapping and GIS software packages. Google maps, google maps api...use JSON


-geoRSS
http://en.wikipedia.org/wiki/GeoRSS
http://www.georss.org/Main_Page

As RSS and Atom become more prevalent as a way to publish and share information, it becomes increasingly important that location is described in an interoperable manner so that applications can request, aggregate, share and map geographically tagged feeds.

There are currently two encodings of GeoRSS, Simple and GML (GeoRSS Geography Markup Language (GML)):
GeoRSS-Simple is meant as a very lightweight format that developers and users can quickly add to their existing feeds. It supports basic geometries (point, line, box, polygon) and covers the typical use cases when encoding locations.
GeoRSS GML is a formal GML Application Profile, and supports a greater range of features, notably coordinate reference systems other than WGS-84 latitude/longitude.
Both formats are designed for use with Atom 1.0, RSS 2.0 and RSS 1.0.


Blogger and geoRSS: http://bloggerindraft.blogspot.com/2008/12/new-feature-geotagging.html


-XML: SVG - Scalable Vector Graphics is an XML format. I think that this file format must be in this GIS list because may map servers use this format and all modern browsers use this format. 
http://www.mccurley.org/svg/
http://en.wikipedia.org/wiki/File:USA_Oregon_location_map.svg
http://commons.wikimedia.org/wiki/Category:SVG_maps
better SVG graphics rendering engine: http://antigrain.com/svg/index.html
(MapServer 5.0+ can use this engine; it supports sub-pixel anti-aliasing, as well as many more features).
look also the "svg" category of this blog ;)



-XML-based interchange format: GPX or GPS eXchange Format
GPX – XML-based interchange format
http://en.wikipedia.org/wiki/GPS_eXchange_Format
It describes waypoints, tracks, and routes. 

A collection of points (with no sequential relationship)  is deemed a collection of individual waypoints.
An ordered collection of points may be expressed as a track or a route.  Tracks are a record of where a person has been (with timestamp (because someone is recording where and when they were there)) and routes are suggestions about where you might go in the future...
View the official site: http://www.topografix.com/gpx.asp

-XML-based interchange format: KML
KML – Keyhole Markup Language, XML-based
http://en.wikipedia.org/wiki/Keyhole_Markup_Language
The KML file specifies a set of features (place marks, altitude, images, 3D models, polygons, textual descriptions, camera view...).  Each place always has a longitude and a latitude.
KML files are distributed in KMZ files, which are zipped files with a .kmz extension.
http://schemas.opengis.net/kml/2.2.0/
referencehttp://code.google.com/apis/kml/documentation/kmlreference.html
Developer's Guide: http://code.google.com/apis/kml/documentation/topicsinkml.html
http://kml-samples.googlecode.com/svn/trunk/interactive/index.html


Google Maps supports the following KML elements (that is, KML queries in the Search box and GGeoXml objects in the Maps API):

  • Placemarks
  • Icons
  • Folders
  • Descriptive HTML
  • Entity replacement via and
  • KMZ (compressed KML, including attached images)
  • Polylines and polygons
  • Styles for polylines and polygons, including color, fill, and opacity
  • Network links to import data dynamically
  • Ground overlays and screen overlays

This list does not apply to Google Earth's export to Google Maps, My Maps import, or My Maps export to Google Earth.
differences between maps and earth for KML: http://code.google.com/apis/kml/documentation/kmlelementsinmaps.html


Maximum uncompressed KML file size=10MB.
Maximum number of Network Links=10.

convert GIS data to KML files
You can import GIS Data and file (ESRI Shape, MapInfo .tab data; GeoTIFF, or other raster dataset) into Google Earth Pro so that it can be used as part of your Google Earth visualizations: http://earth.google.com/outreach/tutorial_importgis.html. If you have Google Earth Pro, you can import many kinds of GIS data directly using the methods described in this tutorial. If you are using the free version of Google Earth, there are other tools for converting GIS data to KML.


ESRI ArcGIS and MapInfo, have tools to export GIS data into KML format (for use in Google Earth).

ogr2gui (http://sourceforge.net/projects/ogr2gui/): a free utility that converts many formats, including shapefiles to KML.
shp2kml (http://www.zonums.com/shp2kml.html): a free utility that converts shapefiles to KML.
MapWindow GIS has Shape2Earth (http://shape2earth.com/default.aspx), a tool for converting GIS data to KML.
ESRI ArcGIS contains tools in the ArcToolbox (Conversion Tools > To KML) for converting vector and raster GIS data to KML.
Arc2Earth (http://www.arc2earth.com/) is an extension for ArcGIS that converts GIS data to KML. The Arc2Earth Community Edition (http://www.arc2earth.com/communityedition/) is a free tool that has lower limits than the full version.
MapInfo Professional has a MapInfo Professional Google Earth Link Utility: http://mapinfo-to-google-earth-tm-export-utilit.software.informer.com/


KML and Spreadsheet Mapper
How to enter data in an on-line spreadsheet to generate a set of placemarks in Google Earth and Maps. Google Docs' web-based, collaborative editing allows your team members to simultaneously enter data and instantly publish updates:
http://earth.google.com/outreach/tutorial_spreadsheet.html

KML and Fusion Table
Because Fusion Tables also supports visualizing your data on maps, it is an alternative to Spreadsheet Mapper: http://earth.google.com/outreach/tutorial_fusion_sample.html
http://earth.google.com/outreach/tutorial_fusion_yourowndata.html#comparemappers
Biking and Hiking trails from MTBGuru.com:
http://blog.mtbguru.com/2010/02/24/mtbguru-tracks-as-seen-through-google-fusion-tables/

a scientific paper: Hector Gonzalez, Alon Halevy, Christian S. Jensen, Anno Langen, Jayant Madhavan, Rebecca Shapley, Warren Shen (2010). "Google Fusion Tables: Data Management, Integration and Collaboration in the Cloud". SoCC'10. ACM:
http://www.cse.ohio-state.edu/~agrawal/788-au10/Papers/Oct28/google-fusion-socc10.pdf

Fusion Tables supports a number of data formats:
Comma-separated files (.csv) - Up to 100 MB
Microsoft Excel files (.xls, .xlsx) - Up to 1 MB
OpenDocument Spreadsheet (.ods) - Up to 1 MB
Keyhole Markup Language (.kml) - Up to 100 MB
Data already in a Google Spreadsheet
If you have datasets in Excel or Open Office Spreadsheets that are larger than 1MB, save them as CSV files to take advantage of the larger 100MB limit!

Manage your Data with Open Data Kit Aggregate:
http://earth.google.com/outreach/tutorial_odk_aggregate.html
Open Data Kit (ODK) is a suite of tools that allows data collection using mobile devices and data submission to an online server, even without an Internet connection or mobile carrier service at the time of data collection. Once you've collected data in the field with ODK Collect, you can upload and manage your data using ODK Aggregate. ODK Aggregate is the intermediary server storage platform that accepts the data and can send it on to external applications, if desired. ODK Aggregate also allows you to download your datasets in aggregated formats, such as one .csv file. ODK Aggregate allows you to use Google's AppEngine hosting platform (see many post of this blogfor managing your collected data online.

------------other links:
http://en.wikipedia.org/wiki/Geography_Markup_Language (GML)
http://en.wikipedia.org/wiki/GIS_file_formats

------------freeware and set of library (converters; filters)
"data conversion" database:
http://freegis.org/database/?cat=11
"geodata" database:
http://freegis.org/database/?cat=1


MapTools Packaged Tools and Utilities:
http://maptools.org/


a list of bookmarks:
http://www.spatialhydrology.com/freedownload.html


------GDAL
GDAL (Geospatial Data Abstraction Library) is a multi-format raster reading and writing library (it is used as the primary mechanism for reading raster data in MapServer).
It provides a powerful set of libraries for working with vector data:
http://trac.osgeo.org/gdal/
http://code.google.com/apis/kml/articles/vector.html
http://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries


------GPSBabel
GPSBabel converts waypoints, tracks, and routes between popular GPS receivers and mapping programs. It also has powerful manipulation tools for such data.
It contains extensive data manipulation abilities making it a convenient for server-side processing or as the backend for other tools. It does not convert, transfer, send, or manipulate maps. It processes data that may placed on a map, such as waypoints, tracks, and routes...
GPSBabel runs on Microsoft Windows 95, 98, ME, 2000, XP, and Vista plus POSIX OSes such as Linux, UnixWare, OpenServer, Solaris, FreeBSD, and OSX.

File FormatWaypointsTracksRoutes

ReadWriteReadWriteReadWrite
Alan Map500 tracklogs (.trl)
alantrl
yesyes
Alan Map500 waypoints and routes (.wpr)
alanwpr
yesyesyesyes
Brauniger IQ Series Barograph Download
baroiq
yes
Bushnell GPS Trail file
bushnell_trl
yesyes
Bushnell GPS Waypoint file
bushnell
yesyes
Cambridge/Winpilot glider software
cambridge
yesyes
CarteSurTable data file
cst
yesyesyes
Cetus for Palm/OS
cetus
yesyesyes
CoastalExplorer XML
coastexp
yesyesyesyes
Columbus/Visiontac V900 files (.csv)
v900
yesyes
Comma separated values
csv
yesyes
CompeGPS data files (.wpt/.trk/.rte)
compegps
yesyesyesyesyesyes
CoPilot Flight Planner for Palm/OS
copilot
yesyes
cotoGPS for Palm/OS
coto
yesyesyes
Data Logger iBlue747 csv
iblue747
yesyes
Dell Axim Navigation System (.gpb) file format
axim_gpb
yes
DeLorme .an1 (drawing) file
an1
yesyesyesyesyes
DeLorme GPL
gpl
yesyes
DeLorme PN-20/PN-30/PN-40 USB protocol
delbin
yesyesyesyesyesyes
DeLorme Street Atlas Plus
saplus
yesyes
DeLorme Street Atlas Route
saroute
yes
DeLorme XMap HH Native .WPT
xmap
yesyes
DeLorme XMap/SAHH 2006 Native .TXT
xmap2006
yesyes
DeLorme XMat HH Street Atlas USA .WPT (PPC)
xmapwpt
yesyes
Destinator Itineraries (.dat)
destinator_itn
yesyes
Destinator Points of Interest (.dat)
destinator_poi
yesyes
Destinator TrackLogs (.dat)
destinator_trl
yesyes
EasyGPS binary format
easygps
yesyes
Embedded Exif-GPS data (.jpg)
exif
yesyes
Enigma binary waypoint file (.ert)
enigma
yesyesyesyes
FAI/IGC Flight Recorder Data Format
igc
yesyesyesyes
Franson GPSGate Simulation
gpssim
yesyesyes
Fugawi
fugawi
yesyes
G7ToWin data files (.g7t)
g7towin
yesyesyes
Garmin 301 Custom position and heartrate
garmin301
yesyes
Garmin Logbook XML
glogbook
yesyes
Garmin MapSource - gdb
gdb
yesyesyesyesyesyes
Garmin MapSource - mps
mapsource
yesyesyesyesyesyes
Garmin MapSource - txt (tab delimited)
garmin_txt
yesyesyesyesyesyes
Garmin PCX5
pcx
yesyesyesyesyesyes
Garmin POI database
garmin_poi
yesyes
Garmin Points of Interest (.gpi)
garmin_gpi
yesyes
Garmin serial/USB protocol
garmin
yesyesyesyesyesyes
Garmin Training Center (.tcx)
gtrnctr
yesyesyes
Geocaching.com .loc
geo
yesyes
GeocachingDB for Palm/OS
gcdb
yesyes
Geogrid-Viewer ascii overlay file (.ovl)
ggv_ovl
yesyesyesyesyesyes
Geogrid-Viewer tracklogs (.log)
ggv_log
yesyes
GEOnet Names Server (GNS)
geonet
yesyes
GeoNiche .pdb
geoniche
yesyes
GlobalSat DG-100/BT-335 Download
dg-100
yes
Google Earth (Keyhole) Markup Language
kml
yesyesyesyesyesyes
Google Maps XML
google
yes
Google Navigator Tracklines (.trl)
gnav_trl
yesyes
GoPal GPS track log (.trk)
gopal
yesyes
GpilotS
gpilots
yesyes
GPS TrackMaker
gtm
yesyesyesyesyesyes
GPSBabel arc filter file
arc
yesyes
GpsDrive Format
gpsdrive
yesyes
GpsDrive Format for Tracks
gpsdrivetrack
yesyes
GPSman
gpsman
yesyes
GPSPilot Tracker for Palm/OS
gpspilot
yesyes
gpsutil
gpsutil
yesyes
GPX XML
gpx
yesyesyesyesyesyes
HikeTech
hiketech
yesyesyesyes
Holux (gm-100) .wpo Format
holux
yesyes
Holux M-241 (MTK based) Binary File Format
m241-bin
yes
Holux M-241 (MTK based) download
m241
yes
Honda/Acura Navigation System VP Log File Format
vpl
yes
HSA Endeavour Navigator export File
hsandv
yesyes
HTML Output
html
yes
Humminbird tracks (.ht)
humminbird_ht
yesyesyesyes
Humminbird waypoints and routes (.hwr)
humminbird
yesyesyesyesyes
IGN Rando track files
ignrando
yesyes
iGO2008 points of interest (.upoi)
igo2008_poi
yesyes
IGO8 .trk
igo8
yesyes
Jelbert GeoTagger data file
jtr
yesyes
Jogmap.de XML format
jogmap
yes
Kartex 5 Track File
ktf2
yesyes
Kartex 5 Waypoint File
kwf2
yesyes
Kompass (DAV) Track (.tk)
kompass_tk
yesyes
Kompass (DAV) Waypoints (.wp)
kompass_wp
yesyes
KuDaTa PsiTrex text
psitrex
yesyesyesyesyesyes
Lowrance USR
lowranceusr
yesyesyesyesyesyes
Magellan Explorist Geocaching
maggeo
yesyes
Magellan Mapsend
mapsend
yesyesyesyesyesyes
Magellan NAV Companion for Palm/OS
magnav
yesyes
Magellan SD files (as for eXplorist)
magellanx
yesyesyesyesyesyes
Magellan SD files (as for Meridian)
magellan
yesyesyesyesyesyes
Magellan serial protocol
magellan
yesyesyesyesyesyes
MagicMaps IK3D project file (.ikt)
ik3d
yesyes
Map&Guide 'TourExchangeFormat' XML
tef
yes
Map&Guide to Palm/OS exported files (.pdb)
mag_pdb
yesyes
MapAsia track file (.tr7)
mapasia_tr7
yesyes
Mapopolis.com Mapconverter CSV
mapconverter
yesyes
MapTech Exchange Format
mxf
yesyes
Memory-Map Navigator overlay files (.mmo)
mmo
yesyesyesyesyesyes
Microsoft AutoRoute 2002 (pin/route reader)
msroute
yes
Microsoft Streets and Trips (pin/route reader)
msroute
yes
Microsoft Streets and Trips 2002-2007
s_and_t
yesyes
Motorrad Routenplaner (Map&Guide) .bcr files
bcr
yesyes
MS PocketStreets 2002 Pushpin
psp
yesyes
MTK Logger (iBlue 747,...) Binary File Format
mtk-bin
yes
MTK Logger (iBlue 747,Qstarz BT-1000,...) download
mtk
yes
National Geographic Topo .tpg (waypoints)
tpg
yesyes
National Geographic Topo 2.x .tpo
tpo2
yes
National Geographic Topo 3.x/4.x .tpo
tpo3
yesyesyes
Navicache.com XML
navicache
yes
Navigon Mobile Navigator .rte files
nmn4
yesyes
Navigon Waypoints
navigonwpt
yesyes
NaviGPS GT-11/BGT-11 Download
navilink
yesyesyesyesyesyes
NaviGPS GT-31/BGT-31 datalogger (.sbp)
sbp
yes
NaviGPS GT-31/BGT-31 SiRF binary logfile (.sbn)
sbn
yes
Naviguide binary route file (.twl)
naviguide
yesyes
Navitel binary track (.bin)
navitel_trk
yesyes
Navitrak DNA marker format
dna
yesyes
NetStumbler Summary File (text)
netstumbler
yes
NIMA/GNIS Geographic Names File
nima
yesyes
NMEA 0183 sentences
nmea
yesyesyesyes
Nokia Landmark Exchange
lmx
yesyes
OpenStreetMap data files
osm
yesyesyesyesyes
OziExplorer
ozi
yesyesyesyesyesyes
PalmDoc Output
palmdoc
yes
PathAway Database for Palm/OS
pathaway
yesyesyesyesyesyes
PocketFMS breadcrumbs
pocketfms_bc
yesyes
PocketFMS flightplan (.xml)
pocketfms_fp
yesyes
PocketFMS waypoints (.txt)
pocketfms_wp
yesyes
Quovadis
quovadis
yesyes
Raymarine Waypoint File (.rwf)
raymarine
yesyesyesyes
Ricoh GPS Log File
ricoh
yesyes
See You flight analysis data
cup
yesyes
Skymap / KMD150 ascii files
skyforce
yesyesyesyesyesyes
SkyTraq Venus based loggers (download)
skytraq
yesyes
SkyTraq Venus based loggers Binary File Format
skytraq-bin
yesyes
Sportsim track files (part of zipped .ssz files)
sportsim
yesyes
Suunto Trek Manager (STM) .sdf files
stmsdf
yesyesyesyes
Suunto Trek Manager (STM) WaypointPlus files
stmwpp
yesyesyesyesyesyes
Swiss Map 25/50/100 (.xol)
xol
yesyesyesyes
Tab delimited fields useful for OpenOffice, Ploticus etc.
openoffice
yesyes
Teletype [ Get Jonathon Johnson to describe
teletype
yesyes
Textual Output
text
yes
TomTom Itineraries (.itn)
tomtom_itn
yesyes
TomTom Places Itineraries (.itn)
tomtom_itn_places
yesyes
TomTom POI file (.asc)
tomtom_asc
yesyes
TomTom POI file (.ov2)
tomtom
yesyes
TopoMapPro Places File
tmpro
yesyes
TrackLogs digital mapping (.trl)
dmtlog
yesyesyesyes
U.S. Census Bureau Tiger Mapping Service
tiger
yesyes
Universal csv with field structure in first line
unicsv
yesyesyesyesyesyes
Vcard Output (for iPod)
vcard
yes
VidaOne GPS for Pocket PC (.gpb)
vidaone
yesyes
Vito Navigator II tracks
vitosmt
yesyesyesyesyesyes
Vito SmartMap tracks (.vtt)
vitovtt
yes
WiFiFoFum 2.0 for PocketPC XML
wfff
yes
Wintec TES file
wintec_tes
yesyes
Wintec WBT-100/200 Binary File Format
wbt-bin
yes
Wintec WBT-100/200 GPS Download
wbt
yesyes
Wintec WBT-201/G-Rays 2 Binary File Format
wbt-tk1
yes
XAiOX iTrackU Logger
itracku
yesyes
XAiOX iTrackU Logger Binary File Format
itracku-bin
yesyesyesyes
Yahoo Geocode API data
yahoo
yes



Filter Encoding is an OGC standard which defines an XML encoding for filter expressions to allow for spatial and attribute querying: http://www.opengeospatial.org/standards/filter

some filters:


Filter FunctionFilter NameWaypointsTracksRoutes
Points along an arcarcyes

Remove unreliable points with high hdop or vdopdiscard
yes
Remove duplicatesduplicateyes

Manipulate altitudesheightyes

Interpolate between trackpointsinterpolateyes

Remove waypoints, tracks, or routes from processing.nuketypes
yes
Remove points around polygonpolygonyes

Remove points within relative distancepositionyes

Include only points within radiusradiusyes

Reverse a pathreverse
yesyes
Simplify routessimplify
yesyes
Stack operationsstackyesnono
Sort waypointssortyes

Manipulate track liststrack
yes
Transform waypoints, tracks, routes into each othertransformyesyesyes