altf

the paranoid android

Archive for September 2007

The Natural Area Coding System

with 2 comments

Abstract

The Natural Area Coding SystemTM is a new system to standardize and integrate geodetic datums, geographic coordinates, geographic area codes, map grids, addresses and postal codes in the world. The system employs revolutionary approaches:

  1. It has unified the concepts of geodetic points, line sections, areas, and three-dimensional regions.
  2. It employs the 30 most popular characters in the world instead of ten digits and makes full use of these characters to produce the most efficient representations;
  3. It is defined only on the datum of WGS-84 to avoid any variations;
  4. It creates one standard representation for all these geographic units.

These approaches make the Natural Area Coding SystemTM superior over traditional systems. A set of coordinates of the system is called a Natural Area Code (NAC) that can represent a point, a line section, an area or a 3D block simultaneously. When representing a geodetic point to the same resolution, it requires only half of the number of characters as required by a longitude/latitude or UTM coordinates. Using NACs to represent line sections, rectangles or three-dimensional regions can save even more in required characters compared with other systems. In addition to all functions of traditional systems, the new system generates Universal AddressesTM for all locations in the world, Global Postal CodesTM, and the Universal Map Grid SystemTM for all kinds of maps in any scales and projections. A Natural Area CodeTM is also called a Universal Area CodeTM. A Global Postal CodeTM is also called a Universal Postal CodeTM. The Natural Area Coding System has unified all these systems into one simple system and greatly simplifies the communication between different categories of science and engineering, different languages, and different countries.

Description

The Natural Area Coding System is a new geodetic system with its origin at the earth gravity center and axis extending to the infinitely distant universe. It employs a character set consisting of digits 0 to 9 and all English capital consonants since these characters are the most popular characters widely used in natural languages such as English, French, Spanish, German, Chinese, and all categories of science and engineering. Each character in the character set represents an integer ranging from 0 to 29, as shown in the following table:

  Table of the NAC Character and Integer Correspondences
===========================================================
||Character|Integer||Character|Integer||Character|Integer||
||---------|-------||---------|-------||---------|-------||
||   0     |   0   ||    B    |  10   ||    N    |   20  ||
||   1     |   1   ||    C    |  11   ||    P    |   21  ||
||   2     |   2   ||    D    |  12   ||    Q    |   22  ||
||   3     |   3   ||    F    |  13   ||    R    |   23  ||
||   4     |   4   ||    G    |  14   ||    S    |   24  ||
||   5     |   5   ||    H    |  15   ||    T    |   25  ||
||   6     |   6   ||    J    |  16   ||    V    |   26  ||
||   7     |   7   ||    K    |  17   ||    W    |   27  ||
||   8     |   8   ||    L    |  18   ||    X    |   28  ||
||   9     |   9   ||    M    |  19   ||    Z    |   29  ||
===========================================================

A Natural Area Code (NAC) consists of three character strings separated by blank spaces. The first character string represents longitude, the second string represents latitude, and the third string represents altitude. The system divides the whole range of longitude (0 – 360 degrees), latitude (0 – 180 degrees) and altitude (from the earth center to the infinite outer space) into 30 discrete divisions respectively, each of which is named by one character from the character set according to the order of the characters. And each resulting division is divided into 30 subdivisions, and each of the subdivisions is named by one character. The division process can continue to the third , fourth, and other levels. The resulting divisions in three dimensions form many regions called NAC blocks. Therefore, a first level NAC block can be represented by a NAC of three characters separated by blank spaces, each of which represents the character string for longitude, latitude and altitude respectively, for example, NAC: 5 6 7. A second level NAC block can be represented by a NAC of six characters to form three character strings: the first two characters form the longitudinal string, the third and fourth characters form the latitudinal string, and the last two characters form the altitudinal string. A blank space is placed between these strings, for example, NAC: JB KH LN represents a NAC block at the second level, in which the characters J, K and L represent coordinates of a first level NAC block which contains the second level NAC block, and the characters B, H and N are the relative coordinates of the second level NAC block in the first level NAC block. A region formed by sides at different division levels is called a NAC region and can be represented by a single NAC too. Any three NAC character strings can form a NAC which represents a completely defined region in the universe.

If the third string of a NAC is omitted, the resulting NAC represents an area on the earth surface, called a NAC area if the number of characters in the two coordinate strings are different, and called a NAC cell if the number of characters in the two coordinate strings are the same. Any two NAC character strings can form a NAC representing a completely defined area on the earth. When the sides are very different in length, a rectangular area will turn out to be a line section automatically. When the sides are relative small, a rectangular area will become a geodetic point.

Therefore, a NAC can represent a geodetic point anywhere in the universe, a line section of constant longitude or constant latitude on the earth, an area bounded by constant longitude and constant latitude anywhere on the earth and a three-dimensional region bounded by constant longitude, constant latitude and constant altitude anywhere in the universe.

The Correlations between the Natural Area Coding System and the World Geodetic System-1984

From (Longitude, Latitude, Altitude) to NAC

The NAC of a region that contains a geodetic point expressed by the longitude, latitude and altitude coordinates in the WGS-84 system[1] can be determined by the following algorithm:

  LONG = (Longitude + 180)/360
  x1 = Integer part of(   LONG*30)
  x2 = Integer part of((  LONG*30-x1)*30)
  x3 = Integer part of((( LONG*30-x1)*30-x2)*30)
  x4 = Integer part of((((LONG*30-x1)*30-x2)*30-x3)*30)
     ...

  LAT =  (Latitude + 90)/180
  y1 = Integer part of(   LAT*30 )
  y2 = Integer part of((  LAT*30-y1)*30)
  y3 = Integer part of((( LAT*30-y1)*30-y2)*30)
  y4 = Integer part of((((LAT*30-y1)*30-y2)*30-y3)*30)
     ...

  ALT = Arctan(Altitude/R)/90
  z1 = Integer part of(   ALT*30)
  z2 = Integer part of((  ALT*30-z1)*30)
  z3 = Integer part of((( ALT*30-z1)*30-z2)*30)
  z4 = Integer part of((((ALT*30-z1)*30-z2)*30-z3)*30)
     ...

where Longitude is positive in the eastern hemisphere but negative in the western; Latitude is positive in the northern hemisphere but negative in the southern; both Longitude and Latitude are in degrees plus decimals; Altitude is measured along the gravitational force line from the center of the geoid of the earth in kilometers; the symbol * is the multiplication sign; x1, x2, x3, x4, …, y1, y2, y3, y4, …, z1, z2, z3, z4, … are integers ranging from 0 to 29 here; Arctan( ) is the arctangent function with value in degrees; R is in km the distance from the earth center along the gravitational force line to the geoid surface and can be approximated by the earth radius at the location:

   R = sqrt[b^2+(a^2-b^2)/(1+b^2/a^2*tan^2(Latitude))]

or more accurately the distance from the gravitation center to the geoid surface along a parabola passing the gravitation center and perpendicular to the geoid surface:

   C1 = [1 - 2*(1 - b^2/a^2)]*tan(Latitude)
   C2 = (1-b^2/a^2)*tan(Latitude)*sqrt[a^2+b^2*tan^2(Latitude)]/a^2
   C3 = 2*a*C2/sqrt[1+b^2/a^2*tan^2(Latitude)]+C1
   C4 = C3*sqrt(1+C3^2)+Asinh(C3)
   C5 = C1*sqrt(1+C1^2)+Asinh(C1)
   R  = (C4 - C5)/4/C2

where a is the semi-major earth axis (ellipsoid equatorial radius) equal to 6378.1370 km; b is the semi- minor earth axis (ellipsoid polar radius) equal to 6356.7523 km; sqrt( ) is the square root function; tan( ) is a triangular tangent function; Asinh( ) is the inverse hyperbolic sine function; the symbol / is the division sign; the symbol ^ is the exponential operator.

Once x1, x2, x3, x4, …, y1, y2, y3, y4, …, z1, z2, z3, z4, … are calculated, the corresponding characters can be found from the Table of the NAC character and integer correspondences: X1, X2, X3, X4, …, Y1, Y2, Y3, Y4, …, Z1, Z2, Z3, Z4, …. Then, the Natural Area Code of the region is written as NAC: X1X2X3X4… Y1Y2Y3Y4… Z1Z2Z3Z4… with a blank space between any two character strings. The first character string of a NAC represents longitude, the second string represents latitude, and the third represents altitude.

If a NAC has only two character strings, then the NAC represents an area on the earth surface and the two character strings represent the longitude and latitude respectively, as defined in the beginning of this chapter. For example, NAC: 8KD8 PGGK represents a 25 by 50 meter area in the White House, while NAC: 8KD8 PGGK H000 represents a region 25 meters wide, 50 meters long and 25 meters high measured from the geoid surface under the White House.

The number of characters to be used in a character string of a NAC representing the geodetic point is determined by the required resolution or the resolution of the original coordinates of the longitude, latitude and altitude. A NAC using more characters represents a smaller area or region. The smallest area or region containing the geodetic point is the one of the size equal to the error range of the coordinates. Therefore, when a NAC is used to represent a geodetic point, it has both the information of the location and its error range.

From NAC to (Longitude, Latitude, Altitude)

If the NAC of a region is known, then the longitude, latitude and altitude of the southwestern lower corner of the region can be calculated by the following procedure:

First, convert all characters X1, X2, X3, X4, … Y1, Y2, Y3, Y4, … Z1, Z2, Z3, Z4, … into integers x1, x2, x3, x4, … y1, y2, y3, y4, … z1, z2, z3, z4, … according to the Table of the NAC Character and Integer Correspondences.

Then use the following formulae to calculate coordinates:

  Longitude = (x1/30+x2/30^2+x3/30^3+x4/30^4+...)*360-180

  Latitude =  (y1/30+y2/30^2+y3/30^3+y4/30^4+...)*180-90

  f = (a - b)/a ;      e = 2*f - f^2  ;

  N = a/sqrt(1 - e^2*sin^2(Latitude))  ;

  R = N*sqrt[1 - e^2*(2-e^2)*sin^2(Latitude)]

  Altitude = R*tan((z1/30+z2/30^2+z3/30^3+z4/30^4+...)*90)-R

The northeastern upper corner of the region can be calculated by repeating the same procedure with the same integers except adding 1 to the integer corresponding to the last character of each string of the NAC. Then, the region can be completely determined by the coordinates of these two geodetic points.

NAC Algebra

In the Natural Area Coding System, several algebraic rules have been introduced to simplify the notations and operations of NACs. Some of the rules are defined in the following, where symbol = represents the equivalency and symbol + represents the sum of two NAC regions or areas.

Definition a If there are a series of neighboring NAC regions in the universe, which exactly fill a region bounded by surfaces of constant longitude, constant latitude and constant altitude, then the whole region can be represented by a single group NAC which uses a hyphen to link the relative coordinate characters of the first NAC with the relative coordinate characters of the last NAC in each direction with multiple NAC regions respectively, for example:

 NAC: NHJ-L TH KJH = NAC: NHJ TH KJH + NAC: NHK TH KJH + NAC: NHL TH KJH

 NAC: NHJ-L TH-J KJH = NAC: NHJ TH KJH + NAC: NHK TH KJH + NAC: NHL TH KJH
                     + NAC: NHJ TJ KJH + NAC: NHK TJ KJH + NAC: NHL TJ KJH

 NAC: NHJ-L TH-J KJH-J = NAC: NHJ TH KJH + NAC: NHK TH KJH + NAC: NHL TH KJH
                       + NAC: NHJ TJ KJH + NAC: NHK TJ KJH + NAC: NHL TJ KJH
                       + NAC: NHJ TH KJJ + NAC: NHK TH KJJ + NAC: NHL TH KJJ
                       + NAC: NHJ TJ KJJ + NAC: NHK TJ KJJ + NAC: NHL TJ KJJ

The number of characters after the hyphen in a character string represents the
number of the characters of the relative coordinate. The characters before the
hyphen in a character string represent the first NAC region coordinate in this
direction. The characters before the hyphen with its last characters replaced
by the characters after the hyphen in the character string represent the last
NAC region coordinate in this direction. For example, NAC: NHJ-LZ TH KJH
represents a three-dimensional region which starts from the region of
NAC: NHJ TH KJH and ends by the region of NAC: NLZ TH KJH, that is,

 NAC: NHJ-LZ TH KJH = NAC: NHJ-Z TH KJH + NAC: NK0-Z TH KJH + NAC: NL0-Z TH KJH

It is the same for NACs with hyphens in two or three character strings, such as:

 NAC: FP-GZ TH-ZK HJK = NAC: FP-Z TH-Z HJK + NAC: G0-Z TH-Z HJK
		      + NAC: FP-Z V0-Z HJK + NAC: G0-Z V0-Z HJK
		      + NAC: FP-Z W0-Z HJK + NAC: G0-Z W0-Z HJK
		      + NAC: FP-Z X0-Z HJK + NAC: G0-Z X0-Z HJK
		      + NAC: FP-Z Z0-K HJK + NAC: G0-Z Z0-K HJK

When a NAC with 0-Z at the end of its character string, these three characters can be omitted in the character string provided there are some characters left in the character string, for example:

 NAC: JJ0-Z KKL HG = NAC: JJ KKL HG

 NAC: JJ0-Z KKL0-Z HG0-Z = NAC: JJ KKL HG

An exponent has been introduced to represent the repetition of one same character in a NAC coordinate string, for example:

 NAC: RGJJJJK RDF FDS = NAC: RGJ(4)K RDF FDS

 NAC: RGGGH HFF ZZZZZ = NAC: RG(3)H HF(2) Z(5)

The exponential expressions will be very useful in representing far distant objects in the universe.

Definition b If there are a series of neighboring NAC areas on the earth which exactly fill an area bounded by lines of constant longitude and constant latitude, then the whole area can be represented by a single group NAC which uses a hyphen to link the relative coordinate characters of the first NAC with the relative coordinate characters of the last NAC in each direction with multiple NAC areas respectively. The exponential expression can be applied to the two-dimensional NAC too.

There are special cases which need be further explained. NAC: RGJ-H WDF is not defined because there are no divisions after division H but before division J in the same higher level division. A group NAC such as NAC: HJ K0-Z can be simplified as NAC: HJ K since 0-Z covers all NAC divisions in the higher level division, but NAC: 0-Z HF is not allowed to be written into NAC: HF because any simplication is only to shorten the coordinate string but not remove the whole string.

With the above definitions, the concept of NAC regions has been extended to include any regions in the universe, bounded by surfaces of constant longitude, constant latitude and constant altitude, and the concept of NAC areas has been extended to include any areas on the earth, bounded by lines of constant longitude and constant latitude. Every NAC region or NAC area can be expressed by a single group NAC. Since the side ratios and size of a NAC area or region can be any values, a NAC in fact can represent any point in the universe, any line section of constant longitude or constant latitude on the earth, any area bounded by lines of constant longitude and constant latitude on the earth, any region bounded by surfaces of constant longitude, constant latitude and constant altitude in the universe.

Calculation of Distance between Two NACs

If the NACs of any two areas on the earth surface have been given as: NAC1 and NAC2, then the earth surface distance between the centers of these two areas can be calculated as follows:

    1.  First, calculate the longitude, latitude and the
        local earth radius of NAC1 and NAC2: a1, b1, R1 and a2, b2,
        R2 respectively using the above formulae;

    2.  Then calculate the distance S between them
        approximately as follows:

    S = Rav*Arccos(cosb1*cosa1*cosb2*cosa2+cosb1*sina1*cosb2*sina2+sinb1*sinb2)

        where Rav = (R1 + R2)/2.

Calculation of the Time Difference between Two NACs

The natural Time difference between these two areas can be calculated by the following equation:

                DT = (a1-a2)*24/360

where the positive value means area 1 has the day staring DT hours earlier than area 2.

Important Advantages

The Natural Area Coding System has special advantages over all other geodetic systems. First, it integrates the concepts of geodetic points, line sections, areas and regions and generates a unified form to represent all these geodetic units.

Second, it generates extremely short coordinates for all these geodetic units to save storage size, for examples:

For a geodetic point, the following are equivalent:  

	NAC: 2CHD Q87M 

        Longitude West 151.3947, Latitude North 43.6508 

For a line section, the following are equivalent:

	NAC: 2C Q87M

	Piont 1: Longitude West 151.5902, Latitude North 43.6508
        Point 2: Longitude West 151.1902, Latitude North 43.6508

For an area, the following are equivalent:

	NAC: 2C Q8

	Northwest corner: Longitude West 151.5902, Latitude North 43.8033
	Southwest corner: Longitude West 151.5902, Latitude North 43.6033
        Northeast corner: Longitude West 151.1902, Latitude North 43.8033
        Southeast corner: Longitude West 151.1902, Latitude North 43.6033

For a three-dimensional region, the following are equivalent:

	NAC: 2C Q8 H000

	In WGS-84, it is expressed by
	The bottom surface has the height = 0 meter above the geoid
        surface and four corners on the surface are:

	Northwest corner: Longitude West 151.5902, Latitude North 43.8033
        Southwest corner: Longitude West 151.5902, Latitude North 43.6033
        Northeast corner: Longitude West 151.1902, Latitude North 43.8033
        Southeast corner: Longitude West 151.1902, Latitude North 43.6033

	The upper surface has the height = 25 meters above the geoid
	surface and four corners on the surface are:

	Northwest corner: Longitude West 151.5902, Latitude North 43.8033
        Southwest corner: Longitude West 151.5902, Latitude North 43.6033
        Northeast corner: Longitude West 151.1902, Latitude North 43.8033
        Southeast corner: Longitude West 151.1902, Latitude North 43.6033

The efficiency of the Natural Area Coding System is so significant that it can save 50% of memory for geodetic points, 75% for line sections, 87% for NAC areas and 94% for NAC regions. Third, the simple NAC can be used to a represent map both in digital and hardcopy forms. If the NAC is used for digital map then all the geodetic coordinates of the map can be save by the relative NAC to save another 50% memory and make the database of maps extremely efficient in retrieving and storing maps. If the NAC is used to name a hardcopy map, then the maps will be very well shelved which will be very conveniently retrieved and placed.

Fourth, an eight-character NAC is an ideal universal address for postal services, delivery services, emergency services and taxi services because it can specify an area less than 25 by 50 meters anywhere in the world.

Five, a ten-character NAC is a perfect property identity code for each property in the world, which specify a reference area less than 0.8 by 1.6 meters on a property anywhere in the world.

Source: http://www.nacgeo.com/

Written by AltF

September 25, 2007 at 2:41 am

iWant – iRobot Roomba Discovery SE 4220(s).

with 2 comments

iRobot roombaWhy do I want it?

  • Active Dirt Response: Roomba senses and finds dirt. Once dirtier areas are detected, Roomba automatically increases the intensity and focus of its cleaning.
  • Cleaning Intelligence: Just push a button and Roomba automatically calculates how long it needs to work to clean your entire room.
  • Advanced Power System: Roomba has a microprocessor controlled charging system that provides up to 120 minutes of cleaning power, It recharges its battery in 3 hours, 60% faster than the original Roomba. With the Advanced Power System, Roomba can clean up to 4 rooms before charging.
  • Proprietary Cleaning System: Roomba’s high efficiency vacuum has a wide cleaning path, 2-times more powerful suction and counter-rotating agitators to reach into your carpet and remove the dirt. The entire cleaning head automatically adjusts for both carpet and hard floor surfaces.
  • Roomba’s spinning sidebrush and Wall Following technology team up to grab dirt and debris from wall edges and other hard-to-reach places.
  • Three powerful cleaning modes: Clean, Spot and Max
  • Air filter prevents dust and dirt from entering Roomba’s vacuum system or your air
  • Self-Charging Home Base–Roomba now has the built-in intelligence to automatically return to its self-charging home base when its battery is low or it has completed a cleaning cycle. This means your Roomba will always be charged and ready for its next cleaning mission.
  • Stasis Sensor–Roomba immediately detects when it’s stuck and initiates its careful escape routine
  • Max Mode–Run the Roomba for the full charge of the battery to vacuum multiple rooms
  • Spot Mode–Intensely cleans one area of a room up to three feet in diameter
  • 2 Virtual Walls–Keeps the Roomba where its wanted by blocking doorways with an invisible beam
  • Multi-Surface Cleaning–Cleans hardwood, tile, linoleum, and low-to-medium pile carpet
  • Automatic Surface Transitioning–The entire cleaning head adjusts automatically for both carpet and hard floor surfaces
  • Automatic Stair Avoidance System–Leave Roomba by itself without worrying about it falling down stairs
  • Standard infrared remote control lets you control standard Roomba functions from across the room
  • Bagless debris bin now holds three times the dirt

Written by AltF

September 24, 2007 at 8:18 am

Posted in Android

Tagged with , , ,

Two new Gmail features: Account activity, Google Gears integration

without comments

Update1: Google officially integrated “account activity” in gmail

Last account activity: Clicking the Details link next to the Last account activity line at the bottom of any Gmail page shows information about recent activity in your mail.
Recent activity includes any times that your mail was accessed, using a regular web browser, through a POP client, from a mobile device, etc. We’ll list the IP address from which the access was made, as well as the time and date.

How to use this data: If you’re concerned about unauthorized access to your mail, you’ll be able to use this data to find out if and when someone gained access. It’s information we’d use to troubleshoot unauthorized account activity, and now it’s available to you. Does the Access Type column show any unusual access? If you don’t use POP to collect your mail, but your Recent activity table is showing some POP access, it may be a sign that your account has been compromised.
The IP address column is also useful. If you always or most often sign in to Gmail using a single computer, your IP address should be the same, or start with the same two sets of numbers (for example, 172.16.xx.xx). If you’re seeing an IP address that differs greatly from your usual IP address, it could either mean that you’ve recently accessed your mail from a different location, or that someone has accessed your mail. Your current IP address is displayed below the Recent activity table.

Concurrent sessions: If your mail is currently being accessed from another location, we’ll list the other session(s) in the Concurrent session information table. This could mean that you simply have another browser window open with Gmail loaded, or that your home computer is logged in to Gmail while you’re accessing your mail from work. If you’re concerned about any concurrent access, you can sign out all sessions other than your current session by clicking Sign out all other sessions.

More info: http://mail.google.com/support/bin/answer.py?ctx=gmail&answer=45938

————————————————————–

  • View account activity

Have you ever had the suspicion that someone has been logging into your email account? Or do you just want peace of mind knowing that you are the only one accessing your account? You will soon be able to see how many computers or browser sessions are currently in your account and their IP address. In addition to real-time account activity, it appears you will be able to see past account activity too. Here are some of the snippets of text that will be used: “This account is currently being used in {number} other locations”, and “Last account activity: at IP [details]”.

gmailaccountauditing1.png

Gmail is due for some serious updates — it’s been too long since anything has changed on the service, and you know its developers aren’t sitting around wondering what to do. I don’t have any guesses as to the timeframe for the release of these features or Gmail 2.0, but this is definitely a promising sign of good things to come.

  • Google Gears integration

It was hinted at in recent reports, but there has been no hard evidence of Google’s plans to integrate Google Gears with Gmail until now. Two snippets of text are in the translation queue that, to me, prove beyond any doubt that Gears will be a part of Gmail. The two snippets of text are “Gears not installed” and “Disable Local Store” as seen in the screenshots below.

gmailgears1.png

Written by AltF

September 24, 2007 at 1:54 am

Posted in Google

Tagged with , , , , , ,