Skip to content

patsplat/javascript-us

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

javascript-us

NPM module of US state metadata. Heavily based on python-us

  • all US states and territories
  • postal abbreviations
  • Associated Press style abbreviations
  • FIPS codes
  • capitals
  • years of statehood
  • time zones
  • phonetic state name lookup
  • URLs to shapefiles for state, census, congressional districts, counties, and census tracts

Installation

As per usual:

$ npm install us

Features

Easy access to state information:

> var us = require('us')
> us.states.MD
{ name: 'Maryland',
  metaphones: [ 'MRLNT' ],
  statehood_year: 1788,
  ap_abbr: 'Md.',
  is_territory: false,
  fips: '24',
  abbr: 'MD',
  capital: 'Annapolis',
  capital_tz: 'America/New_York',
  time_zones: [ 'America/New_York' ] }
> us.states.MD.fips
'24'
> us.states.MD.name
'Maryland'
>

Includes territories too:

> us.states.VI.name
'Virgin Islands'
> us.states.VI.is_territory
true
> us.states.MD.is_territory
false
>

List of all (actual) states:

> us.STATES
[ { name: 'Alabama',
    ... },
  { name: 'Alaska',
    ... }, ...
> us.TERRITORIES
[ { name: 'American Samoa',
    ... },
  { name: 'Guam',
    ... }, ...

And the whole shebang, if you want it:

> us.STATES_AND_TERRITORIES
[ { name: 'Alabama',
    ... },
  { name: 'Alaska',
    ... }, ...
  { name: 'American Samoa',
    ... }, ...

The lookup method allows matching by FIPS code, abbreviation, and name:

> us.lookup('24')
{ name: 'Maryland',
  ... }
> us.lookup('MD')
{ name: 'Maryland',
  ... }
> us.lookup('md')
{ name: 'Maryland',
  ... }
> us.lookup('maryland')
{ name: 'Maryland',
  ... }
>

And for those days that you just can't remember how to spell Mississippi, we've got phonetic name matching too: ::

> us.lookup('misisipi')
{ name: 'Mississippi'
  ... }

Shapefiles

You want shapefiles too? Gotcha covered.

> us.states.MD.shapefile_urls()
{ tract: 'http://www2.census.gov/geo/tiger/TIGER2010/TRACT/2010/tl_2010_24_tract10.zip',
  cd: 'http://www2.census.gov/geo/tiger/TIGER2010/CD/111/tl_2010_24_cd111.zip',
  county: 'http://www2.census.gov/geo/tiger/TIGER2010/COUNTY/2010/tl_2010_24_county10.zip',
  state: 'http://www2.census.gov/geo/tiger/TIGER2010/STATE/2010/tl_2010_24_state10.zip',
  zcta: 'http://www2.census.gov/geo/tiger/TIGER2010/ZCTA5/2010/tl_2010_24_zcta510.zip',
  block: 'http://www2.census.gov/geo/tiger/TIGER2010/TABBLOCK/2010/tl_2010_24_tabblock10.zip',
  blockgroup: 'http://www2.census.gov/geo/tiger/TIGER2010/BG/2010/tl_2010_24_bg10.zip' }

The shapefile_urls() method on the State object generates shapefile URLs for the following regions:

  • state
  • county
  • congressional district
  • zcta
  • census tract

If you know what region you want, you can explicitly request it:

> us.states.MD.shapefile_urls('county')
'http://www2.census.gov/geo/tiger/TIGER2010/COUNTY/2010/tl_2010_24_county10.zip'

Mappings

Mappings between various state attributes are a common need. The mapping() method will generate a lookup between two specified fields.

> us.mapping('fips', 'abbr');
{ '10': 'DE',
  '11': 'DC', ...
> us.mapping('abbr', 'name')
{ AL: 'Alabama',
  AK: 'Alaska', ...

Contributing

Please fork on github and send a pull request. Your contributions are welcomed!

Credits

Contributors to javascript-us:

  • Andy Burke added testing and support for common miss-spellings
  • Patrick Way ported to javascript
  • rab added AMD module compatibility

Contributors to python-us:

About

NPM module of US states

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •