Note: I know that Personal Geodatabases are deprecated. Please do not inform me of that here, I am well aware.
That being said, I'm working on a project involving them here and could use some help. ArcMap is not an option for me.
How were annotation reference scales in personal geodatabases determined?
For example, I have a personal geodatabase containing an annotation feature class that I know for a fact has a reference scale of 1:24,000.
In this version of the MDB format, annotation properties were stored in an XML in a particular field of a certain system table.
The reference scale is documented like so:
<Key>ReferenceScale</Key>
<Value xsi:type='typens:XMLPersistedObject'>
<Bytes>xtrDhXhl0xGfugDAT2vGpQAAAAACAAAAAAAAcNdACQAAAA==
</Bytes>
</Value>That appears to be a base 64 value, but I can't get anything useful out of it
import codecs
y = b"xtrDhXhl0xGfugDAT2vGpQAAAAACAAAAAAAAcNdACQAAAA=="
y = codecs.decode(y, "base64")
print(y)
#b'\xc6\xda\xc3\x85xe\xd3\x11\x9f\xba\x00\xc0Ok\xc6\xa5\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00p\xd7@\t\x00\x00\x00'
print(y.decode("mbcs"))
#ÆÚÃ…xeÓŸº
Similarly, on a different dataset using an earlier form of MDB (these were set up differently, so what we get instead is the entire annotation definition in a blob field) I could get the field as hex. If I decode it online (since I'm having trouble getting the right encoding with python) I can see that there's reference scale in there somewhere, but nothing around it maps to any number. I don't know what the scale of this one is supposed to be.
115A8E589BD0D111AA7C00C04FA33A1501000A0000002600000053006F007500720063006500460065006100740075007200650043006C00610073007300000008000200000000001E00000041006E006E006F00500072006F00700065007200740069006500730000000D00F349581D330DD211A26F080009B6F22B020001000000454100011C0DD211A26F080009B6F22B07001A0000005B0046006500610074005F004E0061006D0065005D0020000000FFFF000000000000000000000000FFFF0000FFFF0000000000000000000000000000000000000000FFFF10000000440065006600610075006C0074000000020000000000743E5AB69329D1119A430080C7EC5C96040096C4E97E23D1D0118383080009B996CC01000100000000000000000000000000000000000000000000000000000000FFFFFFFF030000000000000000000000000000000000000000000000344000000000000014400D0000000000000096C4E97E23D1D0118383080009B996CC0100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005940000000000000594001000000000000000000000000000000000080564001763E5AB69329D1119A430080C7EC5C9622B837FA59A9CD4A834A0E114BF420B801000000000000000000FFFF10727030D552D011A8F200608C85EDE502005000000003000000005910045D74314180F3637970852041EE5A4D68017631411F762D49B6852041010000000200000000000000EE5A4D68017631411F762D49B6852041005910045D74314180F36379708520410067622AD21DB211BF5108002022F57306000102000050524F4A43535B224E41445F313938335F5374617465506C616E655F4D6F6E74616E615F464950535F323530305F46656574222C47454F4743535B224743535F4E6F7274685F416D65726963616E5F31393833222C444154554D5B22445F4E6F7274685F416D65726963616E5F31393833222C53504845524F49445B224752535F31393830222C363337383133372E302C3239382E3235373232323130315D5D2C5052494D454D5B22477265656E77696368222C302E305D2C554E49545B22446567726565222C302E303137343533323932353139393433335D5D2C50524F4A454354494F4E5B224C616D626572745F436F6E666F726D616C5F436F6E6963225D2C504152414D455445525B2246616C73655F45617374696E67222C313936383530302E305D2C504152414D455445525B2246616C73655F4E6F727468696E67222C302E305D2C504152414D455445525B2243656E7472616C5F4D6572696469616E222C2D3130392E355D2C504152414D455445525B225374616E646172645F506172616C6C656C5F31222C34352E305D2C504152414D455445525B225374616E646172645F506172616C6C656C5F32222C34392E305D2C504152414D455445525B224C617469747564655F4F665F4F726967696E222C34342E32355D2C554E49545B22466F6F745F5553222C302E333034383030363039363031323139325D5D0000000000000000000000000000000000010000000050F9E59BC100000030C27897C1D2662EEC780C824100000000006AF8C0000000000088C34000000000006AF8C0000000000088C3406871D9FB67E06A3F2D431CEBE2362A3F2D431CEBE2362A3FF9E5147992C8D0118BB6080009EE4E41010096C4E97E23D1D0118383080009B996CC0100010000FAF202B0ADAE3C40000000000000000000000000000000000000000000000000F03F000000000D0000000000000041CBA500DA52D011A8F200608C85EDE502001400000001000000005910045D74314180F36379708520410067622AD21DB211BF5108002022F57306000102000050524F4A43535B224E41445F313938335F5374617465506C616E655F4D6F6E74616E615F464950535F323530305F46656574222C47454F4743535B224743535F4E6F7274685F416D65726963616E5F31393833222C444154554D5B22445F4E6F7274685F416D65726963616E5F31393833222C53504845524F49445B224752535F31393830222C363337383133372E302C3239382E3235373232323130315D5D2C5052494D454D5B22477265656E77696368222C302E305D2C554E49545B22446567726565222C302E303137343533323932353139393433335D5D2C50524F4A454354494F4E5B224C616D626572745F436F6E666F726D616C5F436F6E6963225D2C504152414D455445525B2246616C73655F45617374696E67222C313936383530302E305D2C504152414D455445525B2246616C73655F4E6F727468696E67222C302E305D2C504152414D455445525B2243656E7472616C5F4D6572696469616E222C2D3130392E355D2C504152414D455445525B225374616E646172645F506172616C6C656C5F31222C34352E305D2C504152414D455445525B225374616E646172645F506172616C6C656C5F32222C34392E305D2C504152414D455445525B224C617469747564655F4F665F4F726967696E222C34342E32355D2C554E49545B22466F6F745F5553222C302E333034383030363039363031323139325D5D0000000000000000000000000000000000010000000050F9E59BC100000030C27897C1D2662EEC780C824100000000006AF8C0000000000088C34000000000006AF8C0000000000088C3406871D9FB67E06A3F2D431CEBE2362A3F2D431CEBE2362A3F000000000000000000000000000000000E0000004D00310032003400520032000000000000000000224001000000000000000000E03F03E6147992C8D0118BB6080009EE4E410100F9E5147992C8D0118BB6080009EE4E41010096C4E97E23D1D0118383080009B996CC010001000014C5A8249A054B400000000000000000000000000000000001000000000000000000000000000D0000000000000096C4E97E23D1D0118383080009B996CC010001000000000000000059400000000000000000000000000000000001000D00000000000000000000000352E30B918FCE119DE300AA004BB851010000009001905F010005417269616C0000919B09D798E29E49975772BB39E55CF30000895253EEC941D111880A080009EC732A06000000000000000300000003000000010000008C95422411D7D2119F4100C04F6BC6A50200FFFF0000000000000000FFFF00000000FFFF000000000000000000000000000077431A26D5D9D211A806CC9F870BCD5A0100000000000300000003000000030000000000000000000000030000000300000003000000000000000000000003000000030000000300000000000000FFFF000000000000000000000000000072431A26D5D9D211A806CC9F870BCD5A01000200000002000000020000000100000002000000020000000200000003000000010000000000000000003E4000000000000000000000000000000000000000000100000002000000000000000000000000000000077215AA79E0D2119F4800C04F6BC6A50200FFFF12727030D552D011A8F200608C85EDE503000B6384D95BC22FC16E235579554572C1A08B0D414740354174AE5A790AB65741000000000067622AD21DB211BF5108002022F57306000102000050524F4A43535B224E41445F313938335F5374617465506C616E655F4D6F6E74616E615F464950535F323530305F46656574222C47454F4743535B224743535F4E6F7274685F416D65726963616E5F31393833222C444154554D5B22445F4E6F7274685F416D65726963616E5F31393833222C53504845524F49445B224752535F31393830222C363337383133372E302C3239382E3235373232323130315D5D2C5052494D454D5B22477265656E77696368222C302E305D2C554E49545B22446567726565222C302E303137343533323932353139393433335D5D2C50524F4A454354494F4E5B224C616D626572745F436F6E666F726D616C5F436F6E6963225D2C504152414D455445525B2246616C73655F45617374696E67222C313936383530302E305D2C504152414D455445525B2246616C73655F4E6F727468696E67222C302E305D2C504152414D455445525B2243656E7472616C5F4D6572696469616E222C2D3130392E355D2C504152414D455445525B225374616E646172645F506172616C6C656C5F31222C34352E305D2C504152414D455445525B225374616E646172645F506172616C6C656C5F32222C34392E305D2C504152414D455445525B224C617469747564655F4F665F4F726967696E222C34342E32355D2C554E49545B22466F6F745F5553222C302E333034383030363039363031323139325D5D0000000000000000000000000000000000010000000050F9E59BC100000030C27897C1D2662EEC780C824100000000006AF8C0000000000088C34000000000006AF8C0000000000088C3406871D9FB67E06A3F2D431CEBE2362A3F2D431CEBE2362A3F0000000000A8BD400000000000A8BD4003000000FFFFFFFF00000000000000000000000000000000FFFF00000000000000000100000010000000560065007200730069006F006E00000002000200160000004100750074006F0043007200650061007400650000000B00FFFF1E000000
#Reference scale begins below
5200650066006500720065006E00630065005300630061006C00650000000D00C6DAC3857865D3119FBA00C04F6BC6A502000000000000A8BD400300000022000000530079006D0062006F006C0043006F006C006C0065006300740069006F006E0000000D00668C5D0E918DD3119FCA00C04F6BC6A503000100000000000000743E5AB69329D1119A430080C7EC5C96040096C4E97E23D1D0118383080009B996CC01000100000000000000000000000000000000000000000000000000000000FFFFFFFF030000000000000000000000000000000000000000000000344000000000000014400D0000000000000096C4E97E23D1D0118383080009B996CC0100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005940000000000000594001000000000000000000000000000000000080564001763E5AB69329D1119A430080C7EC5C9622B837FA59A9CD4A834A0E114BF420B801000000000000000000FFFF10727030D552D011A8F200608C85EDE502005000000003000000005910045D74314180F3637970852041EE5A4D68017631411F762D49B6852041010000000200000000000000EE5A4D68017631411F762D49B6852041005910045D74314180F36379708520410067622AD21DB211BF5108002022F57306000102000050524F4A43535B224E41445F313938335F5374617465506C616E655F4D6F6E74616E615F464950535F323530305F46656574222C47454F4743535B224743535F4E6F7274685F416D65726963616E5F31393833222C444154554D5B22445F4E6F7274685F416D65726963616E5F31393833222C53504845524F49445B224752535F31393830222C363337383133372E302C3239382E3235373232323130315D5D2C5052494D454D5B22477265656E77696368222C302E305D2C554E49545B22446567726565222C302E303137343533323932353139393433335D5D2C50524F4A454354494F4E5B224C616D626572745F436F6E666F726D616C5F436F6E6963225D2C504152414D455445525B2246616C73655F45617374696E67222C313936383530302E305D2C504152414D455445525B2246616C73655F4E6F727468696E67222C302E305D2C504152414D455445525B2243656E7472616C5F4D6572696469616E222C2D3130392E355D2C504152414D455445525B225374616E646172645F506172616C6C656C5F31222C34352E305D2C504152414D455445525B225374616E646172645F506172616C6C656C5F32222C34392E305D2C504152414D455445525B224C617469747564655F4F665F4F726967696E222C34342E32355D2C554E49545B22466F6F745F5553222C302E333034383030363039363031323139325D5D0000000000000000000000000000000000010000000050F9E59BC100000030C27897C1D2662EEC780C824100000000006AF8C0000000000088C34000000000006AF8C0000000000088C3406871D9FB67E06A3F2D431CEBE2362A3F2D431CEBE2362A3FF9E5147992C8D0118BB6080009EE4E41010096C4E97E23D1D0118383080009B996CC0100010000FAF202B0ADAE3C40000000000000000000000000000000000000000000000000F03F000000000D0000000000000041CBA500DA52D011A8F200608C85EDE502001400000001000000005910045D74314180F36379708520410067622AD21DB211BF5108002022F57306000102000050524F4A43535B224E41445F313938335F5374617465506C616E655F4D6F6E74616E615F464950535F323530305F46656574222C47454F4743535B224743535F4E6F7274685F416D65726963616E5F31393833222C444154554D5B22445F4E6F7274685F416D65726963616E5F31393833222C53504845524F49445B224752535F31393830222C363337383133372E302C3239382E3235373232323130315D5D2C5052494D454D5B22477265656E77696368222C302E305D2C554E49545B22446567726565222C302E303137343533323932353139393433335D5D2C50524F4A454354494F4E5B224C616D626572745F436F6E666F726D616C5F436F6E6963225D2C504152414D455445525B2246616C73655F45617374696E67222C313936383530302E305D2C504152414D455445525B2246616C73655F4E6F727468696E67222C302E305D2C504152414D455445525B2243656E7472616C5F4D6572696469616E222C2D3130392E355D2C504152414D455445525B225374616E646172645F506172616C6C656C5F31222C34352E305D2C504152414D455445525B225374616E646172645F506172616C6C656C5F32222C34392E305D2C504152414D455445525B224C617469747564655F4F665F4F726967696E222C34342E32355D2C554E49545B22466F6F745F5553222C302E333034383030363039363031323139325D5D0000000000000000000000000000000000010000000050F9E59BC100000030C27897C1D2662EEC780C824100000000006AF8C0000000000088C34000000000006AF8C0000000000088C3406871D9FB67E06A3F2D431CEBE2362A3F2D431CEBE2362A3F000000000000000000000000000000000E0000004D00310032003400520032000000000000000000224001000000000000000000E03F03E6147992C8D0118BB6080009EE4E410100F9E5147992C8D0118BB6080009EE4E41010096C4E97E23D1D0118383080009B996CC010001000014C5A8249A054B400000000000000000000000000000000001000000000000000000000000000D0000000000000096C4E97E23D1D0118383080009B996CC010001000000000000000059400000000000000000000000000000000001000D00000000000000000000000352E30B918FCE119DE300AA004BB851010000009001DC7C010005417269616CFFFF919B09D798E29E49975772BB39E55CF3000010000000440065006600610075006C007400000001000000280000005500700064006100740065004F006E00530068006100700065004300680061006E006700650000000B00FFFF200000005200650071007500690072006500530079006D0062006F006C004900440000000B0000002A00000041006C006C006F007700530079006D0062006F006C004F007600650072007200690064006500730000000B00FFFF2A0000004F0076006500720070006F007300740065007200500072006F00700065007200740069006500730000000D00563DC7E0886C8C49B77C78606E688C970200FFFF96C4E97E23D1D0118383080009B996CC0100010000E21C58AC04464C40091768519039534083A2B8D49E065140010000000000000000000040"
ZX›ÐѪ|ÀO£:
&SourceFeatureClassAnnoProperties
óIX3
Ò¢o ¶ò+EA
Ò¢o ¶ò+[Feat_Name] ÿÿÿÿÿÿÿÿDefaultt>Z¶“)ÑšCÇì\––Äé~#ÑЃƒ ¹–Ìÿÿÿÿ4@@
–Äé~#ÑЃƒ ¹–ÌY@Y@V@v>Z¶“)ÑšCÇì\–"¸7úY©ÍJƒJKô ¸ÿÿrp0ÕRШò`Œ…íåPY]t1Aócyp… AîZMhv1Av-I¶… AîZMhv1Av-I¶… AY]t1Aócyp… Agb*Ò²¿Q "õsPROJCS["NAD_1983_StatePlane_Montana_FIPS_2500_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot_US",0.3048006096012192]]Pùå›Á0Âx—ÁÒf.ìx‚AjøÀˆÃ@jøÀˆÃ@hqÙûgàj?-Cëâ6*?-Cëâ6*?ùåy’ÈЋ¶ îNA–Äé~#ÑЃƒ ¹–Ìúò°®<@ð?
AË¥ÚRШò`Œ…íåY]t1Aócyp… Agb*Ò²¿Q "õsPROJCS["NAD_1983_StatePlane_Montana_FIPS_2500_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot_US",0.3048006096012192]]Pùå›Á0Âx—ÁÒf.ìx‚AjøÀˆÃ@jøÀˆÃ@hqÙûgàj?-Cëâ6*?-Cëâ6*?M124R2"@à?æy’ÈЋ¶ îNAùåy’ÈЋ¶ îNA–Äé~#ÑЃƒ ¹–ÌŨ$šK@
–Äé~#ÑЃƒ ¹–ÌY@
Rã‘ÎãªK¸Q_Arial‘› טâI—Wr»9å\ó‰RSîÉAш
ìs*Œ•B$×ÒŸAÀOkÆ¥ÿÿÿÿÿÿwC&ÕÙҨ̟‡ÍZÿÿrC&ÕÙҨ̟‡ÍZ>@rªyàÒŸHÀOkÆ¥ÿÿrp0ÕRШò`Œ…íåc„Ù[Â/Án#UyUErÁ ‹
AG@5At®Zy
¶WAgb*Ò²¿Q "õsPROJCS["NAD_1983_StatePlane_Montana_FIPS_2500_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot_US",0.3048006096012192]]Pùå›Á0Âx—ÁÒf.ìx‚AjøÀˆÃ@jøÀˆÃ@hqÙûgàj?-Cëâ6*?-Cëâ6*?¨½@¨½@ÿÿÿÿÿÿVersionAutoCreateÿÿ
ReferenceScale
ÆÚÃ…xeÓŸºÀOkÆ¥¨½@"SymbolCollection
fŒ]‘ÓŸÊÀOkÆ¥t>Z¶“)ÑšCÇì\––Äé~#ÑЃƒ ¹–Ìÿÿÿÿ4@@
–Äé~#ÑЃƒ ¹–ÌY@Y@V@v>Z¶“)ÑšCÇì\–"¸7úY©ÍJƒJKô ¸ÿÿrp0ÕRШò`Œ…íåPY]t1Aócyp… AîZMhv1Av-I¶… AîZMhv1Av-I¶… AY]t1Aócyp… Agb*Ò²¿Q "õsPROJCS["NAD_1983_StatePlane_Montana_FIPS_2500_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot_US",0.3048006096012192]]Pùå›Á0Âx—ÁÒf.ìx‚AjøÀˆÃ@jøÀˆÃ@hqÙûgàj?-Cëâ6*?-Cëâ6*?ùåy’ÈЋ¶ îNA–Äé~#ÑЃƒ ¹–Ìúò°®<@ð?
AË¥ÚRШò`Œ…íåY]t1Aócyp… Agb*Ò²¿Q "õsPROJCS["NAD_1983_StatePlane_Montana_FIPS_2500_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot_US",0.3048006096012192]]Pùå›Á0Âx—ÁÒf.ìx‚AjøÀˆÃ@jøÀˆÃ@hqÙûgàj?-Cëâ6*?-Cëâ6*?M124R2"@à?æy’ÈЋ¶ îNAùåy’ÈЋ¶ îNA–Äé~#ÑЃƒ ¹–ÌŨ$šK@
–Äé~#ÑЃƒ ¹–ÌY@
Rã‘ÎãªK¸QÜ|Arialÿÿ‘› טâI—Wr»9å\óDefault(UpdateOnShapeChangeÿÿ RequireSymbolID*AllowSymbolOverridesÿÿ*OverposterProperties
V=ÇàˆlŒI·|x`nhŒ—ÿÿ–Äé~#ÑЃƒ ¹–ÌâX¬FL@ hQ9S@ƒ¢¸ÔQ@@
So, all in all, I'm pretty confused as to how I can figure this out in either version and would appreciate any pointers.
Thanks!
That's kind of the problem. ArcMap was completely taken away (I asked at UC 2 years ago and was told the only way to get is on a business license. My organization removed access to us all in March 2024. And no hope of getting a specific version) and there isn't a tool to get this stuff anymore.
You have FME or Data Interoperability (extra licensing), and sometimes Q/GDAL (doesn't see feature datasets, for one), and those aren't always enough. For example, at this point ArcMap is the only program to my knowledge that opens MDBs made in Access 97. Access itself can't, unless you download Access 2006 (or 2007?) which iirc is the last version that could upgrade to a more modern format.
I am well aware of why Pro doesn't read personal geodatabases anymore (deprecated Jet driver, etc.), but it should not be impossible to retrieve old data from older formats. Personal Geodatabases, coverages, interchange files are all floating around various organizations folders and largely inaccessible. Tools like GDAL do a pretty good job of retrieving them, but things like Access 97 and compressed or partially compressed interchange files fall through the cracks.
I really don't care about the symbology itself, I just want to get the text in roughly the right size and shape, and it's proving much more difficult to do that than I feel it should be. I got the right placement, but the reference scale is really killing me here. If I can tell by looking at the original footprint that a given Annotation should not be scaled to 1:100,000 but I have no idea how to guess what the correct scale should be with the information that is available to me.
I do appreciate your responses.