home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 24 / CD_ASCQ_24_0995.iso / vrac / aprs72a.zip / README / MAPS-CD.TXT < prev    next >
Text File  |  1995-07-20  |  23KB  |  428 lines

  1. MAPS-CD.txt 7.0    HOW TO BUILD APRS MAPS FROM THE USGS CD ROM    8 June 95
  2.  
  3.  
  4. Note:  This file used to be named CDROM.txt and was renamed.  See also
  5.        MAPS.txt and MAPMAKIN.txt
  6.  
  7. New in 7.a:  W4NMK, Dan Reilly has modified MAKEMAP1 to USGS2MAP.bas which
  8.              works directly on USGS files obtained over the internet vice
  9.              a local CD ROM.  
  10. New in 6.8c: New MAKEMAP1.bas by KB4XF can make a 2,000,000:1 map almost 
  11.              hands free!  See the 32 mile map in North Tennessee. 
  12.              New improved CONV100C.bas does NOT crash on city streets!
  13. New in 6.7:  Brought README.100 into this file to reduce the # of txt files
  14.  
  15.  
  16. OVERVIEW:  There are two areas of CDROM map development ongoing in the 
  17. APRS community.  One is using the relatively crude 2,000,000 CD ROM data 
  18. to fill in the existing APRS map data with more detail on COUNTY lines, 
  19. Streams, Railroads and Park boundaries on a typical 32 mile scale.  The 
  20. other is using the 100,000 CD data for making 2 and 4 mile detail maps of
  21. city streets.  Notice that using 100,000 data to make maps larger than
  22. 4 miles generates TOO many points, and using 2,000,000 data below about
  23. 32 miles gives too little.  For many applications, this detail is NOT 
  24. needed.  With a radio range of 20 miles, it would take 100 such maps to 
  25. cover the area.  At typical radio ranges and the variable accuracy of
  26. GPS, the 32 mile maps are ususally adequate for locating and identifying 
  27. vehicle positions.
  28.  
  29.      There are 3 problems with the USGS data that causes excessive
  30. points in an APRS map.  First, lines begin and end at EACH intersection.  
  31. For a major road, for example, you end up with dozens of short road 
  32. segments wasting 3 point pairs per exit.  Second, these short segments 
  33. are not always consecutive in the file, making it difficult and time 
  34. consuming to try to join them.  Third, the USGS data guarantees 100 
  35. points to the inch at the original maps scale (1/3 mile for the 64 
  36. mile maps) whether it is needed or not.  A 10 mile long straight road 
  37. is stored as 30 points in USGS vice 2 points in APRS.  At the 100,000:1 
  38. scale, this puts a point every 100 feet!
  39.  
  40.  
  41. BIG MAPS:  Information on using the original 2,000,000:1 USGS CD ROM has
  42. been moved to the end of this file, since by now, (fall 94) almost all
  43. of the US population centers have at least the ROADS from this data base.
  44. The 2,000,000 is also still useful for making 30 mile maps bringing in
  45. all of the rivers, streams, county lines, and railroads.  You will not gain
  46. any more roads than what is already in most APRS 64 mile maps, but the 
  47. other features can make a more colorful and geographically filled map.
  48.  
  49.  
  50. DETAIL STREETS:  Making APRS maps from the 100,000:1 USGS CD ROMS should
  51. be considered EXPERIMENTAL and quite TIME CONSUMING at this point.  Do not
  52. consider doing it, unless you accept a challenge or think you can help
  53. us find a quicker way to do it.  For now, it is more fun to me to use
  54. a DIGITIZER (if you have a paper map) and take a full evening, than the
  55. time involved in the multiple passes with the tools that follow... If
  56. however, your digitizer is only 11 inches square and you have to re-place
  57. the MAP 4 or more times to get it all in, then I would say it is a toss-up.
  58.  
  59.      These days,  the focus is on the use of 100,000:1 USGS CD ROMS
  60. that contain data on roads all the way down to your street.  Because of 
  61. the tremendous amount of data available in this data base, USGS sells 
  62. the data on a set of 13 CD's.  To see which CD covers your area, hit 1 
  63. on your APRS screen to get to the whole USA map.  Then press MAPS-ALT 
  64. command to see the CD.map file which is under the USA map.  This display 
  65. shows you the areas of the 13 different ROMS.   To obtain one of these CD 
  66. ROMS, send $32 for each ROM to the USGS Earth Science Info Center, 507 
  67. National Center, Reston, VA 22092.  703-648-6045 or call 1-800-USA-MAPS.
  68. BE SURE TO SPECIFY THE 100,000 OPTIONAL FORMAT! (vice standard)
  69.  
  70.  
  71.  
  72. HOW TO BUILD A MAP FROM THE USGS 100,000:1 DETAIL CD ROMS
  73.  
  74.     The original APRS MAPFIX.bas program could build an APRS map from
  75. the separate files generated by the USGS XTRACT.EXE program provided on
  76. the 2,000,000 CD ROM.  To take advantage of the MAPFIX.bas utility,
  77. W7KKE wrote a program called CONV100c.bas which takes data from the
  78. 100,000 scale CD ROMS and generates DOS files that 'look like' they came 
  79. from the 2,000,000 data and therefore usable in MAPFIX.  Here are the
  80. steps involved:
  81.  
  82. 1.  Run the USGS EXTRACT program and follow its instructions to output the
  83. appropriate map data for the 15 x 15 minute area that you are interested in.
  84. These files will be of the form XXXRDSnn for ROADS and xxxHYFnn for hydro
  85. where the nn is for multiple files to cover the area.  There will be lots
  86. of ROADS files.
  87.  
  88. 2.  Run CONV100c.bas and once you give it one of the above file names, it 
  89. will automatically generate a series of 10 output files of the form 
  90. PREnRD.GRF for n different ROAD files and two other files preWB.grf and 
  91. preST.grf for waterbodies and streams.  CONV100c outputs these files in 
  92. the same format as the original 2,000,000 that MAPFIX knows how to read.  
  93. The PRE is a 3 or 4 letter prefix that you specify for this series to help
  94. you keep track of all the files.  So far, the number 4, 9 and 10 maps in 
  95. my area have been empty... but the pre8RD.GRF file is the largest by a 
  96. factor of ten!  It contains all of the neighborhood streets.
  97.  
  98. 3.  Run MAPFIX and load an existing APRS map that covers the area where
  99. you will be working.  This map just makes it easy to visually get the
  100. cursor to the right area.  Once you hit the ALT-U commmand, this existing
  101. MAP is no longer used.  MOve the cursor to the center of the map you want
  102. to make, and hit the B command to establish the boundary of the area
  103. that you want to develop.  Choose a scale of  3000, 4500, 6000 or 9000 
  104. that will cover the total area you eventually want covered.  Next use the 
  105. alt-USGS command to bring in the first of the above files.  Then do the 
  106. alt-SCRUNCH and the alt-JOIN commands to minimize the map.  Then SAVE IT 
  107. WITH A NEW NAME.  Then repeat this step for all the maps that were output 
  108. from the CONV100c.bas program.  After you have saved each of these, you 
  109. will now have almost a dozen maps each containing a different feature, 
  110. but in APRS format.
  111.  
  112. WARNING!:  NEVER do a second ALT-U USGS BUILD on the same map, because it
  113. will clear all current points and start a new map from scratch.
  114.  
  115. 4.  Next, run Ken's DEFRAG.bas program on EACH of the files generated by
  116. MAPFIX in the above step 3.  This program goes through the files over and
  117. over again, trying to join together all of the disjointed road segments
  118. (of the same class) generated by the USGS data base.  Hopefully you may
  119. see a 20% or more reduction in points.  Re-save each of these reduced
  120. maps under a new name so that you do not distroy your originals (if there
  121. is a problem.
  122.  
  123. NOTE:  Be sure to also review the steps at the end of this file on how 
  124. MAPFIX is used to read the 2,000,000:1 CD ROMS.  Since the 2,000,000:1 
  125. process was developed first and is the basis for MAPFIX routines, you 
  126. might find some helpful details or clarifying information.  W7KKE's
  127. CONV100c.bas program simply puts the 100,000:1 OPTIONAL data format 
  128. into the GRAPHICS format which is then readable my MAPFIX.bas.
  129. His instructions are in README.100, NOW INCLUDED AT THE END OF THIS FILE.
  130.  
  131. 4.  Now, combine these maps into one APRS map, using the MAPFIX alt-IMPORT
  132. command.  This command will bring just one, or all of the map features of one
  133. file into the current file.  In an urban area, the level 8 road file will be
  134. larger than all the others combined.  You can omit it to allow your map to
  135. cover a larger area or include it for the finest detail available.
  136.  
  137. Good luck.  I am just beginnning to play with this level of detail, and to
  138. this point, it is quite practical to use a digitizer!  For more detail on
  139. the use of MAPFIX with CD ROMs, also read the 2,000,000:1 section below,
  140. since it evolved and was the basis for APRS maps before we began messing with
  141. the 100,000:1 data.
  142.  
  143. ----------------------------------------------------------------------------
  144.  
  145. PROCEDURES FOR 2,000,000:1 CD ROM THAT COVERS THE WHOLE US
  146.  
  147.  
  148. Most of the initial 64 mile and larger maps were made by XTRACTING only the
  149. ROADS from this CD.  But NOW (May 95) we have the new MAKEMAP1.bas program
  150. which makes these 2,000,000 type maps (including county lines and streams 
  151. and railraods) relatively easily.  The first such new map that includes ALL 
  152. features on the 2,000,000 CD is in the N. Tennessee map, TNnorth.map.   
  153. Note that it is quite full but only covers about 32 miles. 
  154.  
  155. MAKEMAP.BAS  The new precedure uses the MAKEMAP program by KB4XF @ KC4ASF 
  156. .#NOVA.VA that XTRACTS data directly from the CD and saves it in APRS format.  
  157. You simply choose the state and specify a LAT/LONG and range for the center 
  158. of the map.  By choosing a small enough area (30 miles or so in the east, 
  159. maybe 50 or more in the rural west) you get a resulting map with about 4 
  160. to 5000 points.  THen load this into MAPFIX and use the alt-SCRUNCH command 
  161. and finally go through each point and use alt-DELETE to get the number of 
  162. points below 3000.  This is a nice painless process.  But remember that 
  163. the detail on the 2,000,000 CD ROM is about the same (or worse) as looking 
  164. at a typical state highway  map through a magnifying glass!!!
  165.  
  166.  
  167. USGS2MAP.BAS:  This is a modified version of MAKEMAP1.bas by Dan Reilly,
  168. W4NMK in North Carolina which will work directly on USGS files obtained 
  169. over the internet.  Get these maps from: 
  170.  
  171. http;//edcftp.cr.usgs.gov/pub/data/DLG/2M/{area of interest}
  172.       /{transportation/hydrographic/political/railroads}/
  173.  
  174. Chose the area of interest and the features from the menu.  You will then 
  175. generate ROADS.GRA, WATER_BO.GRA, STREAMS.GRA, POLITICA.GRA and RAILROAD.
  176. GRA.  Combine these all into one file.  One way is with the COPY command:
  177.  
  178. Copy ROADS.GRA+WATER_BO.GRA+STREAMS.GRA+POLITICA.GRA+RAILROAD.GRA ALLSTUFF.GRA
  179.  
  180. Where the file named ALLSTUFF will be your new source file.  Then follow
  181. the instructions in the program (just like MAKEMAP1).
  182.  
  183.  
  184.  
  185. OLD MAPFIX METHOD:  The following STEPS outline the older method which is 
  186. pretty obsolete.  This method uses the USGS XTRACT.EXE program to extract 
  187. separate files for each of the major map categories of features.  Then you
  188. use MAPFIX multiple times to combine the individual features.
  189.  
  190. 1.  Use USGS XTRACT.EXE program to extract the CD ROM data in the GRAPHIC 
  191. format for your area from one of the dozen or so major USGS areas.  Then
  192. select up to 6 categories for extraction onto your HARD disk, one for each
  193. of the data types, Political BOUNDARIES, ROADS, WATER BODIES, STREAMS,
  194. RAILROADS, and HYPSOGRAPHY (continental divide).  These files will take
  195. about 5 to 10 MBytes.  Note the filenames assigned by XTRACT.
  196.  
  197. 2.  Run MAPFIX.BAS program and load the best existing APRS map that covers
  198. the desired area.  This map is only used to help you locate the area of
  199. interest.  Next, move the cursor to the center of interest and select
  200. a SCALE using the BOUNDARY (B) command.  This command will show you the
  201. maximum map possible for a given scale in Points/per degree.  I have found
  202. 600 to be about right.  450 in sparse states and 300 in UTAH and NEW Mex.
  203. If you use any less, to get larger maps, you will end up with far too many
  204. points.  I used 900 for a 35 mile map around Philadelphia.  Making maps any
  205. smaller than this is probably not worth the effort, since there will be
  206. so few roads in it..
  207.  
  208. 3.  When you have the B command set to the desired number of Pixels-per-
  209. degree, press the alt-U key.  MAPFIX will allow you to round the ORIGIN 
  210. values, to reasonable nearly whole numbers or fractions of a degree so 
  211. that later manual operations with a map and ruler will have round numbers 
  212. to deal with.
  213.  
  214. 4.  You do one type of data at a time.  MAPFIX asks you for the type of 
  215. file (RD, ST, WB, etc) and then the exact path to the XTRACTed USGS data.  
  216. This path should include the first part ot the filename up to the (_) 
  217. underline that separates the RD or WB etc final two characters.  On my 
  218. system it is usually D:\NEAST\S01_  and then MAPFIX adds the RD.GRF on 
  219. the end.  MAPFIX will then scan the entire indicated file for all points 
  220. within the selected border.  While converting the points to APRS format, 
  221. MAPFIX will also compare the slope of each new point with the previous 
  222. point and ignore the point if it has approximately the same slope, 
  223. (within 1.2).  The total number of points will be from 2000 to 4000.
  224.  
  225. 5.  Next use the alt-JOIN command.  This will cause MAPFIX to scan through
  226. the map looking for consecutive map features that end and then start
  227. at the same point.  These two features will be joined into one longer
  228. continuous feature.
  229.  
  230. 6.  Next use the MAPFIX alt-SCRUNCHER command which will run another slope
  231. comparison.  You can select the SCRUNCHER factor.  A factor of 1 will only
  232. throw out points that are exactly the same slope (few if any).  A factor of
  233. 1.2 (best) will throw out points whose slope differs by less than 1.2.
  234. Bigger values will throw out more points and will tend to make shortcuts 
  235. out of any long slow curves.  Anything above 1.5 should be avoided.  The
  236. safest approach is to do the alt-SCRUNCH at 1.1 twice, and then if needed
  237. to it again at 1.2.
  238.  
  239. 7.  At this point, you can save the map using Ctrl-S giving it a name which
  240. includes the feature type (..RD, ..ST, ..WB, etc)  As long as you have not
  241. hit the SPACE bar or changed scales, the original MAP which was used for
  242. oreintation will still be on the screen with all the new dots.  This map is
  243. NOT involved at all, but is still on the screen.  Be sure you have saved
  244. the new map points; and then hit alt-U again to do the process again for
  245. another feature type (RD, WB, ST, etc).  If you have not changed anything
  246. your ORIGIN values will be reused again.
  247.  
  248. 8.  Repeat steps 3 through 7 for all 6 data types, being sure to SAVE each
  249. type separately, but without re-drawing the map.  When you are done, quit
  250. MAPFIX and run DEFRAG.bas on the RD file. (there is not much to join in
  251. the others, due to minimal intersections).  This may remove some
  252. additional points by further joining lines.  DEFRAG does not do LABELS,
  253. so if you run DEFRAG on a map with labels, they will be lost.
  254.  
  255. 9.  Now you have the smallest APRS maps that can be done automatically.
  256. Reload MAPFIX, reload the RD file and Move the MAP POINTER to the beginning
  257. FEATURE using the RESET command and use the gray +/- keys to cycle through
  258. EVERY point in the file.  Use the alt-D key to delete all unnecessary points.
  259. Look for complete duplicates of some lines too.  Often, both lanes of a 
  260. 4-lane or interstate are in the file and will be EXACTLY the same!  These 
  261. steps should get you down to below 2000 or so.
  262.  
  263. 10.  Now simply use the Alt-IMPORT command to bring in each of the other
  264. feature maps.  SImilarly go through and remove unnecessary points.  Be sure
  265. the WHITE box is way out beyond the area of the maps, so there is no
  266. TRUNCATION going on with the IMPORT command (It only imports points within
  267. the white box.).  There are usually LOTS of points that you can remove
  268. from the PB, AB, WB and ST files, with little loss of detail.
  269.  
  270.  
  271. NOTE:  If you use the new MAKEMAP.bas/exe program, you will arrive at this
  272. step 10 in ONE step, and only need to do step 6 to begin reducing points.
  273.  
  274.  
  275. ALTERNATE PROCESS FOR WB, ST, BP, AB FILES:
  276.  
  277.     Another way to add some detail from the other non-road USGS files, is to
  278. use the MAPFIX USGS OVERLAY feature to temporarily overlay the USGS data on
  279. the MAPFIX screen without adding points.  Then you use the NEW-FEATURE and
  280. ADD commands to draw APRS features over the top of these temporary points.
  281. The philosopy here is that 96% of amateur interest is on roads, and you
  282. can sure burn up points on waterways and county lines.  For rivers, about
  283. the only points that are important are where the water goes under a bridge.
  284.  
  285.     You might want to first overlay on the 64 mile scale to see where things
  286. are, but then zoom into the 16 mile scale at least and do the overlay again
  287. to get enough resolution for drawing a particular feature.  Usually, I
  288. sketch in rivers at the 32 mile range, because I do NOT try to get every
  289. kink in a river or stream...  You can use the NEW, ADD and MOVE commands,
  290. but any other commands will redraw the map and wipe-out the overlay.  Just
  291. hit the U command again to reproduce the same overlay.  DO NOT CONFUSE THIS
  292. with alt-U which will WIPE-OUT your map.  Use the Ctrl-R command to toggle
  293. the map REDRAW process on and off. This may help you to add lines without
  294. destroying the USGS overlay.  You can do the overlay again and again.
  295.  
  296. WARNING!:  NEVER do a second ALT-U USGS BUILD without FIRST saving what
  297. you have, because it will clear memory and start an all new file.
  298.  
  299.  
  300. CAUTION:  Do not expect too much from this 2,000,000 CD ROM.  ALthough the 
  301. 2,000,000:1 USGS database seems to have resolution down to 1/3 rd of a mile, 
  302. remember that that 1/3rd of a mile was actually 1/100th of an inch on the 
  303. original map!  Your 64 mile section was only a two inch square!!!!!  AND 
  304. THE DATA WAS PROBABLY DERIVED BY A HIGH SCHOOL SUMMER STUDENT using a mouse!
  305.  
  306.  
  307. IT STILL TAKES AN EXCESSIVE AMOUNT OF MANUAL EFFORT TO REDUCE THESE MBYTES
  308. OF USGS DATA DOWN TO A reasonably quick loading 25K APRS MAP!  IT TAKES ME 4
  309. to 12 HOURS PER 64 mile MAP!  About 3 hours for 32 mile maps..  By now
  310. (Fall 94) I have done most of the US to the state highway level of detail.
  311. IF YOU WANT ME TO DO A SPECIAL MAP OF YOUR AREA, to the resolution in the
  312. 2,000,000:1 ROM, SEND $$$ or convince me it is in the general best interest
  313. of all HAMS.  
  314.  
  315. FOR THE 100,000:1, I will only do these maps commercially, because the 3 days
  316. worth of effort only results in a map that covers a few miles.  Only a few
  317. HAMS will even live inside one of these small areas.  If you are a MAP-ology
  318. expert, or an ace programmer and can help us figure out a way to better
  319. automate the process, then we would love to make the whole process easier
  320. for everyone.  Contact Ken Swaggart, W7KKE in Calif, or myself.
  321.  
  322. *****************************************************************************
  323. README.100   (as of 2/13/94)
  324.  
  325.                    1:100,000 CD ROM Map Making
  326.  
  327.                             W7KKE
  328.                          Ken Swaggart
  329.                w7kke @ ka6eyh.#nocal.ca.usa
  330.  
  331. The 1:100,000 line segment maps contained on the USGS CD ROM uses
  332. a different format than the 1:2,000,000 CD ROM maps. My first
  333. utility, CONV100.BAS, converts the 1:100,000 map "Optional Format"
  334. extracted files to the .GRF file format which can be read by the APRS
  335. MAPFIX.BAS program. When you import these map files into MAPFIX you
  336. will notice they are extremely fragmented into small line segments
  337. which are not adjacent. The second utility, DEFRAG.BAS takes the saved
  338. MAPFIX file and defragments it.
  339.  
  340. Here are the step by step instructions:
  341.  
  342.   1. Create a directory on your hard drive where you will be work
  343. on your maps. Stick my programs in this directory and copy
  344. MAPFIX.BAS from the APRS directory into this working map directory.
  345. I use C:\APRSMAPS as my working map directory.
  346.  
  347.   2. Extract "Transportation" and "Hydrography"  for your area of
  348. interest from the 1:100,000 CD ROM using the extraction program
  349. which comes on the CD ROM. I zoom down to the 15' scale on the USGS
  350. extraction program before I extract the map file. Copy these files
  351. into your working map directory.
  352.  
  353.   3. Run CONV100.BAS.  The program will extract each feature, such
  354. as Interstates, US Highways, etc., as separate files with the
  355. filename extension of .GRF.
  356.  
  357.   4. Run MAPFIX.BAS. Import the first converted .GRF file  by using
  358. the @U command in MAPFIX.BAS. After the file is imported you and on
  359. your MAPFIX screen use the Join command (@J) to join adjacent line
  360. segments for this feature. Save this feature as its own .MAP file
  361. and repeat the process for each map feature you created.
  362.  
  363.   NOTE: Make sure you use the same origin and scale each time you
  364.         import the .GRF file using the @U command.
  365.  
  366.   5. Run DEFRAG.BAS to de-fragment the .MAP files you have created.
  367.  
  368.      If DEFRAG.BAS crashes, you can recover most of your defragmented
  369.      segments. Look for SCRATCH1.TMP and SCRATCH2.TMP. Rename the
  370.      larger of these two and delete the remaining .TMP file.
  371.  
  372.   6. Use a text editor, such as DOS's EDIT, and examine your
  373. defragmented .MAP files and tweak as you see fit. You may find that
  374. some line segments consist of only one point - EDIT THOSE OUT
  375.  
  376.   7. Run MAPFIX.BAS again and import your defragmented .MAP file.
  377. Check it over for any obvious errors, correct those, then run the
  378. scruncher function (alt-SCRUNCH) to pare down the .MAP file.
  379.  
  380.   Note: I generally do not run SCRUNCH on the water boundaries and
  381. streams, but hand edit to reduce the points. Another option which
  382. works well is to use the U command to overlay the water boundaries
  383. and streams, then manually draw in the rivers with the @new and @A
  384. commands. This results if far fewer points than the automatic
  385. method.
  386.  
  387.  8. Save your scrunched .MAP file and import your next feature and
  388. repeat the process. (I only run the scruncher on each separate
  389. feature file so I can control what gets scrunched.) Sometimes I have
  390. to bump the scruncher factor way up to pare down the points to fit
  391. the total point limit for APRS.
  392.  
  393.   9. Use a text editor, such as DOS's EDIT, to assemble the final
  394. map from all the defragmented and scrunched .MAP files created for
  395. each map feature type.  BOB COMMENTS:  I prefer to just use the
  396. MAPFIX @IMPORT command to bring these into the working map...
  397.  
  398.   10. Run MAPFIX again and load the resulting complete .MAP file
  399. with all your features. If it is too large, which it probably is,
  400. delete points until you have a map which will fit within APRS
  401. limits.
  402.  
  403.   - There is some small errors (less than 1/4 mile) toward the north east
  404. and north west sections of the map. This is due to the conversion scheme
  405. I use to get from the UTM grid to lat/long. The two grids do not line up
  406. exactly. When you join two adjacent 15' maps, you will see that the roads
  407. are off by about 100 meters. Use mapfix to tweak the lines so they join.
  408.  
  409.  
  410. Please send me any program enhancements/fixes you make to either
  411. program. I'm sure there are a lot better ways to defragment the
  412. .MAP files - there MUST be!
  413.  
  414. PS - watch out for "Streams" - when I extract the ones around here
  415. the resulting .MAP has thousands of points!
  416.  
  417. Changes from CONV100B to CONV100C.bas are:
  418.  
  419.    Now does not crash on very large street files. Before, it would often
  420.    crash when extracting class 4 streets (neighborhood type streets). Be
  421.    prepared for very large class 4 files - over two megabytes for urban areas.
  422.  
  423.    I extract the source date for the data on the 1:100,000 CD ROM. This is
  424.    to clue you that you might be working with old data - some in northern
  425.    California are 12 years old!
  426.  
  427.  
  428.